Как программно создать селектор для рисования из цветового кода в Android
Я хочу создать селектор с помощью #000000
для избранных и #FFFFFF
за невыбранное состояние.
Как я могу создать рисовать программно?
В настоящее время я делаю это следующим образом:
StateListDrawable states = new StateListDrawable();
ColorDrawable cdPress = new ColorDrawable(0xFF0000);
ColorDrawable cdUnPress = new ColorDrawable(0x0101DF);
states.addState(new int[] { android.R.attr.state_selected}, cdPress);
states.addState(new int[] {-android.R.attr.state_selected}, cdUnPress);
view.setBackgroundDrawable(states);
view.setSelected(isSelected);
2 ответа
Создать stateListDrawable и перейти к представлению
StateListDrawable stateListDrawable=new StateListDrawable();
stateListDrawable.addState(new int[]{android.R.attr.state_pressed}getColorDrawable(Colorcode));
stateListDrawable.addState(new int[]{android.R.attr.state_focused},getColorDrawable(Colorcode));
...
mView.setBackground(stateListDrawable);
...
}
private static Drawable getColorDrawable(int colorCode) {
return new ColorDrawable(colorCode);
}
Перейдите в проводник проекта, который должен находиться слева от вашей IDE затмения -> Щелкните правой кнопкой мыши на папке res вашего проекта-> Нажмите "Создать", затем "Папка" -> Назовите эту папку для рисования -> Щелкните правой кнопкой мыши на новой папке для рисования, нажмите "Создать" -> Поиск XML-файла в папке XML -> имя и вставьте этот код, вместо этого укажите цветовые коды
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"><shape android:shape="rectangle">
<corners android:radius="5dp" />
<solid android:color="@color/button2_pressed" />
</shape></item>
<item android:state_focused="true"><shape android:shape="rectangle">
<corners android:radius="5dp" />
<solid android:color="@color/button2_pressed" />
</shape></item>
<item><shape android:shape="rectangle">
<corners android:radius="5dp" />
<solid android:color="@color/button2_default" />
</shape></item>
</selector>