我在imageView中设置圆角图像。现在,我想为圆角图像视图设置边框。
如果它是简单的矩形图像,那么我们可以通过设置该图像视图的背景颜色和设置填充来实现。所以看起来它有边框。
但是如何为圆形图像视图设置边框?
我的代码为方形
创建圆角图像 public static Bitmap getRoundededImage(Bitmap bitmap, int diameter) {
Bitmap output = null;
try {
output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(),
Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
int rectX = (bitmap.getWidth() - diameter) / 2;
int rectY = (bitmap.getHeight() - diameter) / 2;
final Rect rect = new Rect(rectX, rectY, rectX + diameter, rectY
+ diameter);
final RectF rectF = new RectF(rect);
final float roundPx = diameter;
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
// draw border
paint.setColor(color);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth((float) 20);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
} catch (OutOfMemoryError e) {
e.printStackTrace();
}
return output;
}
我尝试搜索并找到了这个Question。我试过这个解决方案,但它没有用。当我应用此解决方案时,图像中没有任何变化。
请帮我解决这个问题或指导我走上正确的道路。
答案 0 :(得分:0)
从你的代码我观察到,你正在视图上绘制一些位图,然后只是你计算你的边界坐标,并沿边界绘制路径,使用canvas.drawPath()
,它可能我帮助你。
请仔细阅读,然后你就可以得到一些想法。
Draw in Canvas by finger, Android http://www.java2s.com/Code/Android/2D-Graphics/Drawpath.htm
这是圆角图像的另一个例子 http://www.curious-creature.org/2012/12/11/android-recipe-1-image-with-rounded-corners/
这是在一些ractangle上绘制圆角的示例
canvas.drawRoundRect(new RectF(0, 100, 100, 200), 6, 6, paint);
有很多api可以获得边界角,但是你需要根据你的图像进行一些计算,
希望这些信息能为您提供帮助。