Могу ли я изменить цвет?

Я использую следующий код, чтобы сделать звездочку:

<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" />
Другие вопросы по тегам