我认为最好的方法是使用
android.graphics
包.创建自己的位图,使用Paint绘制Canvas,其中在图像的上半部分有一种着色器线性渐变,另一种在下半部分.对于更复杂的效果,您可以使用模糊或浮雕遮罩,组合不同的渐变类型(例如线性和径向),通过两个位图的XFer模式组合产生不错的结果,或应用不同的滤色器.
我举了简单的例子:
使用下面的代码.添加模糊以涂抹边缘.
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);