Android循环梯度Alpha面具

Android循环梯度Alpha面具,第1张

概述有没有办法在 Android中的位图上绘制圆形梯度蒙版?试图生产类似于雾窗的东西.点击窗口,透明的圆圈显示窗口后面的内容.优雅地使用渐变,所以圆的中心是完全透明的,从中心越远透明度越低.这可能吗? 我是Android的新手,所以任何代码示例将不胜感激. 谢谢. private void drawFoggyWindowWithTransparentCircle(Canvas canvas, 有没有办法在 Android中的位图上绘制圆形梯度蒙版?试图生产类似于雾窗的东西.点击窗口,透明的圆圈显示窗口后面的内容.优雅地使用渐变,所以圆的中心是完全透明的,从中心越远透明度越低.这可能吗?

我是AndroID的新手,所以任何代码示例将不胜感激.

谢谢.

解决方法
private voID drawFoggyWindowWithtransparentCircle(Canvas canvas,float circleX,float circleY,float radius) {    // Get the "foggy window" bitmap    BitmapDrawable foggyWindow =         (BitmapDrawable) getResources().getDrawable(R.drawable.foggy_window);    Bitmap foggyWindowBmp = foggyWindow.getBitmap();    // Create a temporary bitmap    Bitmap tempBitmap = Bitmap.createBitmap(            foggyWindowBmp.getWIDth(),foggyWindowBmp.getHeight(),Bitmap.Config.ARGB_8888);    Canvas tempCanvas = new Canvas(tempBitmap);    // copy foggyWindowBmp into tempBitmap    tempCanvas.drawBitmap(foggyWindowBmp,null);    // Create a radial gradIEnt    RadialGradIEnt gradIEnt = new androID.graphics.RadialGradIEnt(            circleX,circleY,radius,0xFF000000,0x00000000,androID.graphics.Shader.TileMode.CLAMP);    // Draw transparent circle into tempBitmap    Paint p = new Paint();    p.setShader(gradIEnt);    p.setcolor(0xFF000000);    p.setXfermode(new PorterDuffXfermode(Mode.DST_OUT));    tempCanvas.drawCircle(circleX,p);    // Draw tempBitmap onto the screen (over what's already there)    canvas.drawBitmap(tempBitmap,null);}
总结

以上是内存溢出为你收集整理的Android循环梯度Alpha面具全部内容,希望文章能够帮你解决Android循环梯度Alpha面具所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1132633.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存