在android中的圆形图像的边框

时间:2014-05-27 12:05:05

标签: android image-processing imageview border rounded-corners

我在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。我试过这个解决方案,但它没有用。当我应用此解决方案时,图像中没有任何变化。

请帮我解决这个问题或指导我走上正确的道路。

1 个答案:

答案 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可以获得边界角,但是你需要根据你的图像进行一些计算,

希望这些信息能为您提供帮助。

相关问题