我正在尝试创建一个椭圆形位图,我需要在边缘周围获得羽毛效果,
有谁有任何想法我怎么能做到这一点?
谢谢.
解决方法:
您可以将’羽毛效果’视为渐变渐变,Alpha衰落从100%到0%.
Android为此提供了RadialGradient类.您将需要使用构造函数来指定radIEnt的控制点,因为您希望渐变在边缘附近开始,而不是在中间.
AndroID的RadialGradIEnt类的一个问题是它只支持完美的圆圈,而不是椭圆形.为了弥补这一点,我们将绘制一个完美的圆形并随后进行缩放.
示例代码:
private Bitmap makeFeatheredoval(int wIDth, int height) { // Determine largest dimension, use for rectangle. int size = Math.max( wIDth, height); RadialGradIEnt gradIEnt = new RadialGradIEnt(size / 2, size / 2, size / 2, new int[] {0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF}, new float[] {0.0f, 0.8f, 1.0f}, androID.graphics.Shader.TileMode.CLAMP); Paint paint = new Paint(); paint.setShader(gradIEnt); Bitmap bitmap = Bitmap.createBitmap(size, size, Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.drawCircle(size / 2, size / 2, size / 2, paint); // Scale the bitmap, creating an oval bitmap = Bitmap.createScaledBitmap(bitmap, wIDth, height, true); return bitmap; }
示例图像(它是左上角的椭圆形“月亮”):
识别背景图像的每个人的奖励积分.
总结以上是内存溢出为你收集整理的如何在Android中实现羽化效果?全部内容,希望文章能够帮你解决如何在Android中实现羽化效果?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)