我尝试使用RoundedBitmapDrawable
覆盖我的CustomImageView onDraw
方法在Android上创建CircleImageView,但我永远无法显示图像。
我的代码:
@Override
protected void onDraw(Canvas canvas) {
Drawable drawable = getDrawable();
if (drawable == null) {
return;
}
if (getWidth() == 0 || getHeight() == 0) {
return;
}
Bitmap b = ((BitmapDrawable)drawable).getBitmap() ;
Bitmap bitmap = b.copy(Bitmap.Config.ARGB_8888, true);
RoundedBitmapDrawable bmp = getCroppedBitmap(bitmap);
bmp.setAntiAlias(true);
bmp.setDither(true);
bmp.setCornerRadius(Math.min(drawable.getMinimumWidth(),drawable.getMinimumHeight()));
bmp.draw(canvas);
}
private RoundedBitmapDrawable getCroppedBitmap(Bitmap bitmapimg) {
return RoundedBitmapDrawableFactory.create(getResources(),bitmapimg);
}
我做错了什么以及我是如何努力使其发挥作用的?
由于
答案 0 :(得分:1)
其实我忘记了一件简单的事情:
bmp.setBounds(new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()));
感谢您的帮助!
答案 1 :(得分:0)
看起来你需要调用canvas.drawBitmap(位图),不是吗?