Android - Circle Image - Tạo ảnh bo tròn trong Android Studio
Để 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 tạo ra có kích thước khác nhau trên các thiết bị có độ phân giải khác nhau, sử dụng thêm hàm chuyển đổi giá trị px và dp:
private int convertDpToPx(float dp, Resources resources) { float density = resources.getDisplayMetrics().density;
int px = (int) (dp * density);
return px;}
Khi truyền vào giá trị bán kính của ảnh, ta chỉ cần quan tâm đến giá trị với đơn vị dp
Nhận xét
Đăng nhận xét