2015-07-21 2 views
0

У меня есть конкретная необходимость, чтобы texcolorlist помещал drawable с помощью кнопки фона. Мой TextColor:Как изменить textColor, если кнопка нажата Android

<?xml version="1.0" encoding="UTF-8" ?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:color="@android:color/black" /> 
    <item android:state_checked="true" android:color="@android:color/black" /> 
    <item android:color="#8e000000"/> 
</selector> 

Моя кнопка Состояние:

<?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"> 
      <gradient 
       android:angle="90" 
       android:endColor="#005b7f" 
       android:startColor="#051725"/> 
      <corners android:radius="5dp"/> 
     </shape> 
    </item> 
    <item> 
     <shape android:shape="rectangle"> 
      <gradient 
       android:angle="90" 
       android:endColor="#e6e6e6" 
       android:startColor="#b3b3b3"/> 
      <corners 
       android:bottomLeftRadius="5dp" 
       android:bottomRightRadius="5dp" 
       android:topLeftRadius="5dp" 
       android:topRightRadius="5dp"/> 
     </shape> 
    </item> 
</selector> 

Я знаю, что таким образом я могу поставить цвет кнопки:android:textColor="@drawable/button_text_color"

Интересно, если текст кнопки цвет можно поместить прямо в My Button State. Это то, , но он не работает:

<?xml version="1.0" encoding="UTF-8" ?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape 
      android:shape="rectangle" 
      android:textColor="#000000"> 
      <gradient 
       android:angle="90" 
       android:endColor="#e6e6e6" 
       android:startColor="#b3b3b3"/> 
      <corners 
       android:bottomLeftRadius="5dp" 
       android:bottomRightRadius="5dp" 
       android:topLeftRadius="5dp" 
       android:topRightRadius="5dp"/> 
     </shape> 
    </item> 
</selector> 

ответ

0

Вам нужно определить селектор также цвет текста:

android:textColor="@drawable/yourselector" 

Вот пример:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:state_pressed="false" android:color="@color/blue" /> 
    <item android:state_focused="true" android:state_pressed="true" android:color="@color/red" /> 
    <item android:state_focused="false" android:state_pressed="true" android:color="@color/green" /> 

</selector> 

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

+0

Пожалуйста, заправьте все мои комментарии. Я пишу «Я знаю, что таким образом я могу поместить цвет кнопки:« android: textColor = »@ drawable/button_text_color» « –

+0

Да, я видел. Я не думаю, что вы можете попробовать – yshahak

+0

Я стараюсь, вопрос C# код, потому что я работаю в xamarin –

0

Интересно, можно ли поместить цвет текста кнопки непосредственно в состояние «Моя кнопка».

Нет, не может. Ресурсы Drawable XML не могут устанавливать свойства для элементов, к которым они применяются. Что вас может заинтересовать, используется Style.

значения/styles.xml

<style name="MyButtonStyle"> 
    <item name="android:textColor">@drawable/button_text_color</item> 
    <item name="android:background">@drawable/button_background</item> 
</style> 

MyLayout.xml

<Button 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    style="@style/MyButtonStyle"/> 
+0

Неплохая идея. Но у меня есть два режима в приложении. Первый режим является нормальным, второй - секцией администратора. В первом режиме мне нужно изменить текст, когда вы нажимаете на кнопку, второй режим требует, чтобы текст был только одного цвета. В двух режимах используется одна и та же кнопка только для разворачиваемой отправки. –

+0

Было бы неплохо, если бы вы отредактировали свой вопрос, чтобы отразить то, что вы на самом деле задаете, и включите соответствующий код XML и/или Java для этой конкретной кнопки.Похоже, кнопка в основном отключена в режиме «нормального», и в этом случае вы можете просто называть 'setEnabled'. – Nicklas

0

Этот вопрос был раньше:

Android customized button; changing text color

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

+0

аренда тростника полный мой qustion Я пишу «Я знаю, что таким образом я могу поместить цвет кнопки:« android: textColor = »@ drawable/button_text_color –

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