Android 원형 이미지 효과 구현

3164 단어 Android원형 사진
본 논문 의 사례 는 안 드 로 이 드 가 원형 이미지 효 과 를 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.

RoundPicture.java 파일 만 들 기
src/main/java/XX 패키지 에 RoundPicture.java 를 새로 만 듭 니 다.


RoundPicture.java 파일 쓰기
아래 코드 를 복사 하고 클래스 를 도입 하면 됩 니 다.

public class RoundPicture extends androidx.appcompat.widget.AppCompatImageView {
    private Paint paint;
    public RoundPicture(Context context) {
        this(context, null);
    }
    public RoundPicture(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public RoundPicture(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        paint = new Paint();
    }

//          
    @Override
    protected void onDraw(Canvas canvas) {
        Drawable drawable = getDrawable();
        if (null != drawable) {
            Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
            Bitmap b = getCircleBitmap(bitmap, 14);
            final Rect rectSrc = new Rect(0, 0, b.getWidth(), b.getHeight());
            final Rect rectDest = new Rect(0, 0, getWidth(), getHeight());
            paint.reset();
            canvas.drawBitmap(b, rectSrc, rectDest, paint);
        } else {
            super.onDraw(canvas);
        }
    }
//             
    private Bitmap getCircleBitmap(Bitmap bitmap, int pixels) {
        Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(output);
        final int color = 0xff424242;
        final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
        paint.setAntiAlias(true);
        canvas.drawARGB(0, 0, 0, 0);
        paint.setColor(color);
        int x = bitmap.getWidth();
        canvas.drawCircle(x / 2, x / 2, x / 2, paint);
        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        canvas.drawBitmap(bitmap, rect, rect, paint);
        return output;
    }
}
RoundPicture 를 호출 하여 원형 그림 만 들 기
.xml 파일 에 그림 을 삽입 하면 컨트롤 이름 을 바 꿉 니 다.
<com.example.jh_android.RoundPicture android:id="@+id/iv" android:layout_height="200dp" android:layout_width="200dp" android:layout_marginTop="150dp" android:layout_centerHorizontal="true" android:src="@drawable/head" />이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기