ボタンのセレクターを動的に作成したい。ボタンが無効になっている場合 ( setEnable(false)
)、その色が変わるはずです。
1109 次
3 に答える
0
StateListDrawableが答えです。
ただし、さまざまなステータスに基づいて色を変更したいだけの場合は、セレクター関連の xml を大量に記述したくありません。
重要なポイントは、StateListDrawableを動的に構築することです。
xml を書くのにうんざりしているので、StateListDrawableBuilderとDrawableBuilderを作成します。
コードを表示していないことをお詫びします。
于 2015-07-16T06:18:42.583 に答える
0
私のコードにばかげた間違いがあることがわかりました。
セレクターの作成方法
public static StateListDrawable createSelectorsWithStates(int[] state,
Drawable[] drawables)
{
StateListDrawable stateDrawable = new StateListDrawable();
for (int i = 0; i < state.length; i++)
{
stateDrawable.addState(new int[] { state[i] }, drawables[i]);
}
return stateDrawable;
}
ボタンにドローアブルを設定するには:
Drawable enable = ResourceManager.createRectangleShape(
bgColor, null, borderRadius);
enable.setAlpha((int)0.5f);
Drawable disable = ResourceManager.createRectangleShape(
bgColor, null, borderRadius);
disable.setAlpha(150);
ResourceManager.setDrawable(v1, ResourceManager
.createSelectorsWithStates(new int[] {
android.R.attr.state_enabled,
-android.R.attr.state_enabled },
new Drawable[] { enable, disable }));
于 2015-07-16T06:59:50.877 に答える
-4
btn.setEnable(false);
btn.setBackgroundColor(color);
セレクターは使用しないでください。
于 2015-07-16T05:59:55.453 に答える