Могу ли я изменить цвет?
Я использую следующий код, чтобы сделать звездочку:
<Button
android:id="@+id/leftButton"
android:onClick = "Star"
android:layout_width="100dp"
android:layout_height="100dp"
android:Color="#FFFF00" //I tried adding this, but no luck :(
android:layout_alignParentTop="true"
android:background="@android:drawable/btn_star" />
Кнопка в настоящее время выглядит белой:
Могу ли я сделать его желтым?
Я знаю, что у меня не может быть двух атрибутов фона, но могу ли я что-нибудь сделать, чтобы изменить цвет этой звезды? Я хочу сохранить звезду в качестве атрибута фона, а не атрибута источника, потому что я хочу иметь возможность изменять его размер.
4 ответа
Если вы хотите пожелтеть значок звезды, то вы можете использовать ColorFiler
за это. Следующее:
Drawable drawable = getResources().getDrawable(android.R.drawable.star);
drawable.setColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_ATOP);
Надеюсь это поможет.
Не напрямую. Вы можете добавлять различные раскрашенные изображения и изменять их во время выполнения, но гораздо лучше использовать рисованный файл XML. Для значков с файлами XML взгляните на https://materialdesignicons.com/ (таких сайтов гораздо больше)
В XML-файле вы можете изменить цвет напрямую
Ваш XML- файл.
<Button
android:id="@+id/leftButton"
android:tint="@color/yellow_tint"
android:onClick = "Star"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:background="@android:drawable/btn_star" />
colors.xml
<resources>
<color name="yellow_tint">#FFFF00</color>
</resources>
Попробуйте и дайте мне знать. Обратитесь к этому: Работа с Drawables. Боюсь, Android: цвет не будет работать в Drawables.
(background_star.xml) в папке для рисования:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/star_yellow" <!-- image yellow -->
android:state_pressed="true" />
<item android:drawable="@drawable/star_normal" /> <!-- image normal-->
</selector>
в файле макета:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="cancel alarm"
android:id="@+id/button2"
android:background="@drawable/background_star" <!-- change this -->
android:layout_centerHorizontal="true" />