2016-01-25 4 views
-1

Я использую следующий код, чтобы сделать кнопку звезды:Можно ли изменить цвет?

<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" /> 

Кнопка в настоящее время выглядит белой:

enter image description here

есть в любом случае я могу сделать это желтым?

Я знаю, что у меня нет двух атрибутов фона, но есть ли что-нибудь, что я могу сделать, чтобы изменить цвет этой звезды? Я хочу сохранить звезду как атрибут фона, а не атрибут источника, потому что я хочу иметь возможность изменять его размер.

+0

Я был бы очень признателен за любую помощь, как я пытался понять это более часа! –

+1

как вы решаете, когда это произошло, отобразив желтую версию? – Blackbelt

+0

Вы хотите изменить цвет на желтый цвет onclick? или просто статический желтый значок? Если статический, почему бы не заменить ярлык со значком желтого цвета? –

ответ

0

Не напрямую. Вы можете добавлять разные раскрашенные изображения и изменять их во время выполнения, но гораздо лучше использовать xml drawable. Для принимать иконки с XML-файлами взглянуть на https://materialdesignicons.com (есть гораздо больше сайтов, как, что снаружи)

В файле XML вы можете изменить цвет непосредственно

2

Если вы хотите желтый значок звезды, то вы можете используйте ColorFiler для этого. В следующем порядке:

Drawable drawable = getResources().getDrawable(android.R.drawable.star); 
drawable.setColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_ATOP); 

Надеюсь, это поможет.

+0

Что такое «PorterDuff.Mode.SRC_ATOP» –

+0

Что это значит? Благодаря! –

+0

Пожалуйста, перейдите по ссылке http://ssp.impulsetrain.com/porterduff.html, которая имеет хорошее объяснение различных режимов porterduff. –

0

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> 

Попробуйте и дайте мне знать. См. Также: Working with Drawables. Боюсь, Android: цвет не будет работать в Drawables.

+0

Не работает ... Остался на белом ... –

0

(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" /> 
+0

Используйте ImageView для квадратных изображений ... – Lucas

+0

Не удается разрешить символ 'star_yellow' ... –

+0

Лукас предлагает вам добавить дополнительный актив для этого. – Barett

Смежные вопросы