如何在Android中制作完整的圆形图像视图

16
1个回答

33

获取位图:

Bitmap bitmap = getthebitmapyouwanttoshowinacirclefromsomewhere;
Bitmap circleBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);

使用着色器:

BitmapShader shader = new BitmapShader (bitmap,  TileMode.CLAMP, TileMode.CLAMP);
Paint paint = new Paint();
        paint.setShader(shader);

绘制画布;

Canvas c = new Canvas(circleBitmap);
c.drawCircle(bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, paint);

设置图像:

myImageView.setImageBitmap(circleBitmap);

1
差不多了...但我想要半径固定为30dp(很简单),同时我希望显示的图像(圆形)是从原始图片的中心开始的... - Aamir Shah
你需要更改这个方法的参数:c.drawCircle(bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, paint); - nmw
我已经得到了这张图片,但它在布局中的位置正在改变,左侧和顶部有很多填充/边距... - Aamir Shah
确实,根据您的需求,您将不得不在画布和drawcircle参数之间进行调整。 - Waza_Be
@Waza_be,请将其设为付费答案 :-)另外补充:使用正方形图像来制作圆形。 - Tushar Pandey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接