Android: 如何绘制这个自定义形状
Android: How to draw this custom shape
我是 Android 的新手,我想知道如何绘制这个蓝色形状:
当然不使用图像。
谢谢!
简单的方法是您建议的解决方案,即。将所有没有 alpha 的圆圈绘制到位图,然后使用所需的 alpha 将该位图绘制到另一个位图。
困难的方法是使用混合模式,特别是 PorterDuff.Mode in Android. An example can be found here.
同时检查这个 http://softwyer.wordpress.com/2012/01/21/1009/
一个例子
Bitmap bitmap = Bitmap.createBitmap(b.getWidth(), b.getHeight(), b.getConfig());
Canvas canvas = new Canvas(bitmap);
Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);
p.setColor(Color.BLACK);
canvas.drawRoundRect(new RectF(0, 0, b.getWidth(), b.getHeight()), borderRadius, borderRadius, p);
p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(b, 0, 0, p);
我是 Android 的新手,我想知道如何绘制这个蓝色形状:
当然不使用图像。
谢谢!
简单的方法是您建议的解决方案,即。将所有没有 alpha 的圆圈绘制到位图,然后使用所需的 alpha 将该位图绘制到另一个位图。 困难的方法是使用混合模式,特别是 PorterDuff.Mode in Android. An example can be found here.
同时检查这个 http://softwyer.wordpress.com/2012/01/21/1009/
一个例子
Bitmap bitmap = Bitmap.createBitmap(b.getWidth(), b.getHeight(), b.getConfig());
Canvas canvas = new Canvas(bitmap);
Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);
p.setColor(Color.BLACK);
canvas.drawRoundRect(new RectF(0, 0, b.getWidth(), b.getHeight()), borderRadius, borderRadius, p);
p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(b, 0, 0, p);