我认为最好的方法是使用以下方式来解决这个问题:
android.graphics
包。创建自己的位图,使用具有一种类型的着色器线性渐变的画笔在画布上绘制,以覆盖图像的上部和下部使用另一种类型的渐变。对于更复杂的效果,您可以使用模糊或浮雕遮罩,组合不同的渐变类型(例如线性和径向),通过两个位图的XFer模式组合产生漂亮的结果,或应用不同的颜色过滤器。
我制作了一个简单的示例:
![enter image description here](https://istack.dev59.com/ClW58.webp)
使用下面的代码。添加了模糊来涂抹边缘。
Bitmap bmResult = Bitmap.createBitmap(buttonWidth, buttonHeight, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmResult);
Paint paint = new Paint();
paint.setShader(new LinearGradient (0, 0, 0, bmResult.getHeight()/2, 0xFF284560, 0xFF284060, TileMode.MIRROR));
canvas.drawPaint(paint);
paint.setShader(new LinearGradient (0, 0, 0, bmResult.getHeight()/2, 0x55FFFFFF, 0x22FFFFFF, TileMode.CLAMP));
paint.setMaskFilter(new BlurMaskFilter(3, BlurMaskFilter.Blur.NORMAL));
canvas.drawRect(0, 0, bmResult.getWidth(), bmResult.getHeight()/2, paint);