9 パッチ イメージのボタンがあります。「押された」状態の別の画像を提供したくありません(それがStateListDrawable
必要です)。押されたときに「暗く」なりたいだけです(iOSボタンのように)。どうすればこれを達成できますか?
質問する
174 次
1 に答える
1
次のようなものを使用します。
public class MyStateDrawable extends LayerDrawable {
public MyStateDrawable(Drawable[] layers) {
super(layers);
}
@Override
protected boolean onStateChange(int[] states) {
for (int state : states) {
if (state == R.attr.state_activated || state == android.R.attr.state_pressed) {
super.setColorFilter(0x7f000000, Mode.SRC_ATOP);
return true;
} else if(state == -android.R.attr.state_activated || state == -android.R.attr.state_pressed){
super.setColorFilter(0x00000000, Mode.SRC_ATOP);
return true;
}else {
super.setColorFilter(null);
}
}
return super.onStateChange(states);
}
@Override
public boolean isStateful() {
return true;
}
}
その後
StateDrawable state = new MyStateDrawable(new Drawable[]{mDefaultDrawable});
view.setImageDrawable(state);
これがあなたを助けることを願っています:)
于 2013-01-14T13:41:11.463 に答える