我試圖用編程方式製作具有不同漸變效果的按鈕。我使用ShapeDrawable,它像一個魅力。以編程方式向ShapeDrawable添加陰影
RoundRectShape rs = new RoundRectShape(new float[] { 12f, 12f, 12f, 12f, 12f, 12f, 12f, 12f }, null, null);
ShapeDrawable sd = new ShapeDrawable(rs);
ShapeDrawable.ShaderFactory sf = new ShapeDrawable.ShaderFactory() {
@Override
public Shader resize(int width, int height) {
LinearGradient lg = new LinearGradient(0, 0, 0, height,
new int[] {
Color.parseColor("#feccb1"),
Color.parseColor("#f17432"),
Color.parseColor("#e86320"),
Color.parseColor("#f96e22") },
new float[] {
0, 0.50f, 0.50f, 1 },
Shader.TileMode.REPEAT);
return lg;
}
};
sd.setShaderFactory(sf);
myBtn.setBackgroundDrawable(sd);
但是我想一個陰影添加到該按鈕,沒有按鈕上的文字編程。任何幫助,將不勝感激。
謝謝!有用。有沒有辦法讓底層的「陰影」圖層模糊一點? (我嘗試過線性漸變,但看起來很奇怪......) –
@ stevo.mit我知道你想要什麼,但我想不出那麼簡單。你可以創建自己的'Drawable'並在'draw'方法中創建該效果,或者簡單地,用所需的陰影創建一個小的'.png'圖像,並創建一個具有平鋪模式的'BitmapDrawable'以重複該png圖像然後使用該'BitmapDrawable'作爲陰影層。 – Luksprog