다른 그라디언트가있는 단추를 프로그래밍 방식으로 만들려고합니다. 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' 이미지를 만들고 그 png 이미지를 반복하도록 설정된 타일 모드로'BitmapDrawable'을 만듭니다 그 BitmapDrawable을 그림자 레이어로 사용하십시오. – Luksprog