Android循环梯度Alpha面具

前端之家收集整理的这篇文章主要介绍了Android循环梯度Alpha面具前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法在 Android中的位图上绘制圆形梯度蒙版?试图生产类似于雾窗的东西.点击窗口,透明的圆圈显示窗口后面的内容.优雅地使用渐变,所以圆的中心是完全透明的,从中心越远透明度越低.这可能吗?

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

谢谢.

解决方法

  1. private void drawFoggyWindowWithTransparentCircle(Canvas canvas,float circleX,float circleY,float radius) {
  2.  
  3. // Get the "foggy window" bitmap
  4. BitmapDrawable foggyWindow =
  5. (BitmapDrawable) getResources().getDrawable(R.drawable.foggy_window);
  6. Bitmap foggyWindowBmp = foggyWindow.getBitmap();
  7.  
  8. // Create a temporary bitmap
  9. Bitmap tempBitmap = Bitmap.createBitmap(
  10. foggyWindowBmp.getWidth(),foggyWindowBmp.getHeight(),Bitmap.Config.ARGB_8888);
  11. Canvas tempCanvas = new Canvas(tempBitmap);
  12.  
  13. // Copy foggyWindowBmp into tempBitmap
  14. tempCanvas.drawBitmap(foggyWindowBmp,null);
  15.  
  16. // Create a radial gradient
  17. RadialGradient gradient = new android.graphics.RadialGradient(
  18. circleX,circleY,radius,0xFF000000,0x00000000,android.graphics.Shader.TileMode.CLAMP);
  19.  
  20. // Draw transparent circle into tempBitmap
  21. Paint p = new Paint();
  22. p.setShader(gradient);
  23. p.setColor(0xFF000000);
  24. p.setXfermode(new PorterDuffXfermode(Mode.DST_OUT));
  25. tempCanvas.drawCircle(circleX,p);
  26.  
  27. // Draw tempBitmap onto the screen (over what's already there)
  28. canvas.drawBitmap(tempBitmap,null);
  29. }

猜你在找的Android相关文章