Cảm ơn bạn đã ghé thăm cộng đồng vietandroid.com. Đây là một cộng đồng mở và miễn phí vì vậy chúng tôi rất mong bạn hãy tham gia và hoạt động tích cực bằng cách đặt câu hỏi/thắc mắc hoặc những kinh nghiệm của bạn trong lập trình Android tới mọi người. Chúc bạn thành công !
+2 phiếu
đã hỏi trong Layout - UI/UX bởi (790 điểm)

Đoạn code ngắn dưới đây sẽ giúp bạn dễ dàng tạo một imageview hình tròn rất pro :D

 

Đơn giản là chỉ cần convert ảnh bản định set Source hoặc background cho ImageView thành hình tròn là xong :

 Bitmap bitmap = DrawUtil.drawableToBitmap(drawable);
                            RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(mContext.getResources(), bitmap);
                            roundedBitmapDrawable.setCornerRadius(Math.max(bitmap.getWidth(), bitmap.getHeight()) / 2.0f);
                            avatar.setImageDrawable(roundedBitmapDrawable);
                            
 public static Bitmap drawableToBitmap (Drawable drawable) {
        Bitmap bitmap = null;

        if (drawable instanceof BitmapDrawable) {
            BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
            if(bitmapDrawable.getBitmap() != null) {
                return bitmapDrawable.getBitmap();
            }
        }

        if(drawable.getIntrinsicWidth() <= 0 || drawable.getIntrinsicHeight() <= 0) {
            bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888); // Single color bitmap will be created of 1x1 pixel
        } else {
            bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
        }

        Canvas canvas = new Canvas(bitmap);
        drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
        drawable.draw(canvas);
        return bitmap;
    }

 

2 Câu trả lời

0 phiếu
đã trả lời bởi (240 điểm)
Thanks bạn cái này rất hay
0 phiếu
đã trả lời bởi (270 điểm)
Cảm ơn a. cái này hay quá ạ!
...