Android 如何将半圆遮罩应用于ImageView
我有一个图像,一个半圆框图像,我需要把这个图像放在这个框内。但我需要将遮罩应用于我的图像,以便它仅显示在帧内 例如,这是我的图像: 我想要的结果应该是这样的: 红色边框也是一个内部透明的图像视图Android 如何将半圆遮罩应用于ImageView,android,imageview,mask,Android,Imageview,Mask,我有一个图像,一个半圆框图像,我需要把这个图像放在这个框内。但我需要将遮罩应用于我的图像,以便它仅显示在帧内 例如,这是我的图像: 我想要的结果应该是这样的: 红色边框也是一个内部透明的图像视图 如何在Android中实现这一点?有一个很棒的教程,分四个部分介绍如何实现这一点 编辑: 我在教程的第二部分编辑了代码,并创建了以下效果: private Bitmap processImage(Bitmap bitmap) { Bitmap bmp; bmp = Bitmap.c
如何在Android中实现这一点?有一个很棒的教程,分四个部分介绍如何实现这一点 编辑: 我在教程的第二部分编辑了代码,并创建了以下效果:
private Bitmap processImage(Bitmap bitmap) {
Bitmap bmp;
bmp = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Bitmap.Config.ARGB_8888);
BitmapShader shader = new BitmapShader(bitmap,
BitmapShader.TileMode.CLAMP,
BitmapShader.TileMode.CLAMP);
float radius = bitmap.getWidth() / 2f;
Canvas canvas = new Canvas(bmp);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setShader(shader);
RectF rect = new RectF(-bitmap.getWidth() / 2f, 0,
bitmap.getWidth() / 2f, bitmap.getHeight());
canvas.drawOval(rect, paint);
return bmp;
}
我刚刚用
drawOval
替换了代码末尾的drawRoundRect
,它实际上画了一个圆圈,其中一半是从画布上画出来的。谢谢,但是我如何才能将帧图像放在这上面呢?我可以给这个位图加上宽度和高度,然后给边框加上更大的宽度和高度吗?给红色边框加上更大的位图,然后在绘制最终图像之前,绘制红色边框:canvas.drawOval(rectRedFrame,paintRedFrame)代码>canvas.drawOval(矩形,绘画)再次感谢,但我还有一个问题。为什么fitXY不适用于内部位图图像?好的,我通过更改这一行解决了我的问题:RectF rect=new RectF(-bitmap.getWidth(),0,bitmap.getWidth(),bitmap.getHeight());