핸드폰 앨범을 호출하여 사진을 재단하고 원형으로 표시합니다

7251 단어 Android
본고는 그림을 원형 디스플레이로 바꾸는 처리 방법만 쓰고, 휴대전화 카메라와 앨범 사진 재단을 어떻게 사용하는지에 대해서는 다음 글을 보십시오.
우선 util 도구 클래스입니다. 이 방법을 util에 넣고 직접 호출합니다.
util 클래스:
public class PhotoUtil {
    public Bitmap toRoundBitmap(Bitmap bitmap) {
        int width = bitmap.getWidth();
        int height = bitmap.getHeight();
        float roundPx;
        float left, top, right, bottom, dst_left, dst_top, dst_right, dst_bottom;
        if (width <= height) {
            roundPx = width / 2;
            top = 0;
            bottom = width;
            left = 0;
            right = width;
            height = width;
            dst_left = 0;
            dst_top = 0;
            dst_right = width;
            dst_bottom = width;
        } else {
            roundPx = height / 2;
            float clip = (width - height) / 2;
            left = clip;
            right = width - clip;
            top = 0;
            bottom = height;
            width = height;
            dst_left = 0;
            dst_top = 0;
            dst_right = height;
            dst_bottom = height;
        }
        Bitmap output = Bitmap.createBitmap(width,
                height, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(output);
        final int color = 0xff424242;
        final Paint paint = new Paint();
        final Rect src = new Rect((int) left, (int) top, (int) right, (int) bottom);
        final Rect dst = new Rect((int) dst_left, (int) dst_top, (int) dst_right, (int) dst_bottom);
        final RectF rectF = new RectF(dst);
        paint.setAntiAlias(true);
        canvas.drawARGB(0, 0, 0, 0);
        paint.setColor(color);
        canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        canvas.drawBitmap(bitmap, src, dst, paint);
        return output;
    }
}

그리고 적당한 곳에서 그를 사용하라
PhotoUtil photoUtil = new PhotoUtil();
bitmap = photoUtil.toRoundBitmap(bitmap);

이렇게 하면 실현할 수 있다

좋은 웹페이지 즐겨찾기