是否可以通过编程或XML配置(而不是通过9Patch PNG)来实现SpringPad小部件上的效果:
如果仔细观察,在上(较亮)和下(较暗)渐变之间有一个锐利的边界/线。另外,右边的浮雕区域有内部和外部阴影。
我知道如何在一个按钮上设置渐变背景,但是这个渐变是恒定的,没有中间的那条尖锐的线。另外,我找不到任何关于阴影创建和操作的参考。
谢谢。
最佳答案
我认为最好的方法是用
android.graphics
包裹。创建您自己的位图,绘制在画布上使用油漆,有一种类型的着色线性渐变到图像的上部,另一种到下部。对于更复杂的效果,可以使用模糊或浮雕遮罩,组合不同的渐变类型(例如线性和径向),通过两个位图的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);