Để tạo ảnh bo tròn, đầu tiên cần có dữ liệu ảnh đầu vào dạng bitmap, sau đó thực hiện hàm sau ảnh sẽ được xử lý và trả về một bitmap: public Bitmap drawCircleImage (Bitmap imageOriginal , int radiusDp , Resources resources) { if (imageOriginal == null ) { return BitmapFactory. decodeResource (resources , R.mipmap. place_hole ) ; } int radiusPx = convertDpToPx (radiusDp , resources) ; Bitmap bitmapResource = Bitmap. createBitmap (radiusPx * 2 , radiusPx * 2 , Bitmap.Config. ARGB_8888 ) ; Canvas canvas = new Canvas(bitmapResource) ; Paint color = new Paint() ; color.setAntiAlias( true ) ; canvas.drawCircle(radiusPx , radiusPx , radiusPx , color) ; // important here for circle image color.setXfermode( new PorterDuffXfermode(PorterDuff.Mode. SRC_IN )) ; canvas.drawBitmap(Bitmap. createScaledBitmap (imageOriginal , radiusPx * 2 , radiusPx * 2 , true ) , 0 , 0 , color) ; return bitmapResource ; } Tránh hiện tượng
Nhận xét
Đăng nhận xét