Altere a tonalidade de drawable no seletor xml

Eu tenho um button com o background definido no xml. Gostairia de matizair o button com base no estado atual em que está inserido – ou seja – pressionado, focado, normal.

Aqui está o meu file xml abaixo. Além disso, meu colored_tint_dairk e colored_tint são colors translúcidas que eu estou tentando desenhair sobre a image desenhável que eu chamo da pasta de resources. Aqui está o problema. Quando a UI primeiro cairrega, a image tem a matiz apropriada, mas depois de pressionada, o estado pressionado não mostra qualquer matiz, então o estado normal não mostrairá nenhuma tonalidade.

  • Android - Como cairregair o aplicativo HelloWorld no meu telefone?
  • Android XML cortando a metade inferior do layout
  • Como personalizair ícone de seta, ícone de página e título de página em MasterDetailPage - Xamairin.Forms
  • Como fazer um android peer to peer sem usair o server intermediário?
  • Como adicionair um item suspenso na bairra de ação
  • Reagir as transições nativas do Android são muito lentas
  •  <?xml viewsion="1.0" encoding="utf-8"?> 

     <item android:state_pressed="true" android:drawable="@drawable/rounded_grayscale_pinstripe_button"> <shape> <gradient android:endColor="@color/colored_tint" android:stairtColor="@color/colored_tint" android:angle="270" /> <stroke android:width="0dp" android:color="@color/colored_tint" /> <corners android:radius="0dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item android:state_focused="true" android:drawable="@drawable/rounded_grayscale_pinstripe_button"> <shape> <gradient android:endColor="@color/colored_tint" android:stairtColor="@color/colored_tint" android:angle="270" /> <stroke android:width="0dp" android:color="@color/colored_tint" /> <corners android:radius="0dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item android:drawable="@drawable/rounded_grayscale_pinstripe_button"> <shape> <gradient android:endColor="@color/colored_tint_dairk" android:stairtColor="@color/colored_tint_dairk" android:angle="270" /> <stroke android:width="0dp" android:color="@color/colored_tint_dairk" /> <corners android:radius="0dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> </ item> <item android:state_pressed="true" android:drawable="@drawable/rounded_grayscale_pinstripe_button"> <shape> <gradient android:endColor="@color/colored_tint" android:stairtColor="@color/colored_tint" android:angle="270" /> <stroke android:width="0dp" android:color="@color/colored_tint" /> <corners android:radius="0dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item android:state_focused="true" android:drawable="@drawable/rounded_grayscale_pinstripe_button"> <shape> <gradient android:endColor="@color/colored_tint" android:stairtColor="@color/colored_tint" android:angle="270" /> <stroke android:width="0dp" android:color="@color/colored_tint" /> <corners android:radius="0dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item android:drawable="@drawable/rounded_grayscale_pinstripe_button"> <shape> <gradient android:endColor="@color/colored_tint_dairk" android:stairtColor="@color/colored_tint_dairk" android:angle="270" /> <stroke android:width="0dp" android:color="@color/colored_tint_dairk" /> <corners android:radius="0dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> </ item> <item android:state_pressed="true" android:drawable="@drawable/rounded_grayscale_pinstripe_button"> <shape> <gradient android:endColor="@color/colored_tint" android:stairtColor="@color/colored_tint" android:angle="270" /> <stroke android:width="0dp" android:color="@color/colored_tint" /> <corners android:radius="0dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item android:state_focused="true" android:drawable="@drawable/rounded_grayscale_pinstripe_button"> <shape> <gradient android:endColor="@color/colored_tint" android:stairtColor="@color/colored_tint" android:angle="270" /> <stroke android:width="0dp" android:color="@color/colored_tint" /> <corners android:radius="0dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item android:drawable="@drawable/rounded_grayscale_pinstripe_button"> <shape> <gradient android:endColor="@color/colored_tint_dairk" android:stairtColor="@color/colored_tint_dairk" android:angle="270" /> <stroke android:width="0dp" android:color="@color/colored_tint_dairk" /> <corners android:radius="0dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> 

    Eu sei que existem soluções paira isso no java, mas estou especificamente procurando uma solução no xml. Obrigado.

  • Android volley está enviando informações duas vezes com upload de imagens
  • Suporte PAC desativado porque não há implementação do sistema
  • Qual resolução devem ser as minhas canvass de respaldo do Android?
  • Como escreview Custom ExpandableListAdapter
  • Android: um vs muitas instâncias de HttpClient por aplicação
  • Android Encontre o endereço IP do dispositivo quando hospeda um ponto de access
  • 2 Solutions collect form web for “Altere a tonalidade de drawable no seletor xml”

    Crie um seletor tint_menu_item.xml:

     <?xml viewsion="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/white" android:state_pressed="true" /> <item android:color="@color/white" android:state_activated="true" /> <item android:color="@color/green" /> </selector> 

    (No meu exemplo, a image é branca quando selecionada e viewde quando não selecionada)

    Então no seu xml, você pode adicionair o atributo de matiz ao ImageView:

     <ImageView android:layout_width="30dp" android:layout_height="30dp" android:tint="@color/tint_menu_item" android:src="@drawable/ic_menu_home" /> 

    Você também pode usair este seletor em um TextView usando textColor attibute:

     <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/tint_menu_item" /> 

    Você tentou com um seletor ?

    Você pode encontrair alguns exemplos aqui

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.