白色圆圈内的位图

时间:2017-01-19 19:13:22

标签: java android bitmap android-bitmap

我正在尝试将Bitmap填入白圈内,更具体地说:

我有Bitmap例如:

enter image description here

我想要这个:

enter image description here

我将背景变为灰色以便理解图像。

我使用这种方法,但它没有达到我想要的效果..

public static Bitmap getRoundedBitmap(Bitmap bitmap)
{
    final Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
    final Canvas canvas = new Canvas(output);

    final int color = Color.WHITE;
    final Paint paint = new Paint();
    final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
    final RectF rectF = new RectF(rect);

    paint.setAntiAlias(true);
    canvas.drawARGB(0, 0, 0, 0);
    paint.setColor(color);
    canvas.drawOval(rectF, paint);
    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
    canvas.drawBitmap(bitmap, rect, rect, paint);

    bitmap.recycle();

    return output;
}

2 个答案:

答案 0 :(得分:1)

我猜你用来绘制椭圆的颜色是ALPHA = 0.尝试用Color(1.0f,1.0f,1.0f,1.0f)替换Color.WHITE。告诉我,如果这解决了你的问题,并看看:  What does PorterDuff.Mode mean in android graphics.What does it do?

在这种情况下,对于SRC_IN:[Sa * Da,Sc * Da](取自android引用,PorterDuff.Mode)

答案 1 :(得分:-1)

这是一个使用XML格式的示例。

1)右键单击drawable资源文件夹并创建一个新的Drawable资源文件。

2)粘贴以下代码。这会创建一个可绘制的资源,其外观与您想要的背景非常相似。

;

3)使用布局中的资源。用您的' tick'替换我的占位符Android复选框。资源文件。

preg_replace('/[a-z( )]+/','string','replace');