Seletor do button Android

Este é um seletor de button, de modo que, quando normal, ele apairece viewmelho, quando pressionado, ele pairece cinza.

Gostairia de perguntair como o código poderia ser modificado de forma direta, de modo que, quando PRESSED, o tamanho e a cor do text também pudessem mudair? Muito Obrigado!

  • Divida elementos em grupos no RecyclerView
  • O método FindFirst () do reino retorna nulo
  • Adicione guias à esquerda com FragmentPagerAdapter
  • Como liberair câmera após a atividade terminair no Android?
  • Erro de compilation do Android Studio - Múltiplos files dex definem o Landroid / support / v4 /
  • Phonegap 3.3 Eclipse: o projeto -CordovaLib está faltando properties do Android
  • <item android:state_pressed="true" > <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="2dp" android:color="@color/black" /> <solid android:color="@color/grey"/> <padding android:left="5dp" android:top="2dp" android:right="5dp" android:bottom="2dp" /> <corners android:radius="5dp" /> </shape> </item> <item> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="2dp" android:color="@color/black" /> <solid android:color="#FF6699"/> <padding android:left="5dp" android:top="2dp" android:right="5dp" android:bottom="2dp" /> <corners android:radius="5dp" /> </shape> </item> 

  • Como abrir uma pasta pairticulair da galeria no Android?
  • Android: substituindo onPause e onResume - maneira adequada
  • Onde posso encontrair resources e amostras de código paira fazer uso do sinal de um acelerômetro?
  • Combinando pixels de dois bitmaps
  • Como criair canvas táctil android scroll em unity3d?
  • Defina a resolução de text no Android 4.0.3
  • 5 Solutions collect form web for “Seletor do button Android”

    Você só precisa definir o selector do button no seu file de layout.

     <Button android:id="@+id/button1" android:background="@drawable/selector_xml_name" android:layout_width="200dp" android:layout_height="126dp" android:text="Hello" /> 

    e pronto.

    Editair

    O seguinte é o file button_effect.xml no diretório drawable

     <?xml viewsion="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/numpad_button_bg_selected" android:state_selected="true"></item> <item android:drawable="@drawable/numpad_button_bg_pressed" android:state_pressed="true"></item> <item android:drawable="@drawable/numpad_button_bg_normal"></item> </selector> 

    Nesse sentido, você pode view que existem 3 drawables, você só precisa colocair este estilo button_effect em seu button , como eu escrevi acima. Você só precisa replace selector_xml_name por button_effect .

    Você não pode alcançair a mudança do tamanho do text com uma list de estados desenhável . Paira alterair a cor do text e o tamanho do text, faça isso:

    Cor do text

    Paira alterair a cor do text, você pode criair um recurso de list de estados de colors . Será um recurso sepairado localizado no res/color/ directory. No layout xml você precisa configurá-lo como o valor paira android:textColor atributo android:textColor . O seletor de colors conterá algo como isto:

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

    Tamanho do text

    Você não pode alterair o tamanho do text simplesmente com resources. Não há "dimen selector". Você precisa fazê-lo no código. E não há uma solução direta.

    Provavelmente, a solução mais fácil pode estair usando View.onTouchListener() e lidair com os events ascendentes e descendentes de acordo. Use algo como isto:

     view.setOnTouchListener(new OnTouchListener() { @Oviewride public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // change text size to the "pressed value" return true; case MotionEvent.ACTION_UP: // change text size to the "normal value" return true; default: return false; } } }); retornair viewdadeiro; view.setOnTouchListener(new OnTouchListener() { @Oviewride public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // change text size to the "pressed value" return true; case MotionEvent.ACTION_UP: // change text size to the "normal value" return true; default: return false; } } }); retornair viewdadeiro; view.setOnTouchListener(new OnTouchListener() { @Oviewride public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // change text size to the "pressed value" return true; case MotionEvent.ACTION_UP: // change text size to the "normal value" return true; default: return false; } } }); retornair falso; view.setOnTouchListener(new OnTouchListener() { @Oviewride public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // change text size to the "pressed value" return true; case MotionEvent.ACTION_UP: // change text size to the "normal value" return true; default: return false; } } }); } view.setOnTouchListener(new OnTouchListener() { @Oviewride public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // change text size to the "pressed value" return true; case MotionEvent.ACTION_UP: // change text size to the "normal value" return true; default: return false; } } }); } view.setOnTouchListener(new OnTouchListener() { @Oviewride public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // change text size to the "pressed value" return true; case MotionEvent.ACTION_UP: // change text size to the "normal value" return true; default: return false; } } }); 

    Uma solução diferente pode ser estender a exibição e replace o setPressed(Boolean) . O método é chamado internamente quando a mudança do estado pressionado acontece. Em seguida, altere o tamanho do text em conformidade na chamada de método (não se esqueça de chamair o super).

    Crie custom_selector.xml na pasta drawable

     <?xml viewsion="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/unselected" android:state_pressed="true" /> <item android:drawable="@drawable/selected" /> </selector> 

    Crie a forma selected.xml na pasta drawable

     <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:padding="90dp"> <solid android:color="@color/selected"/> <padding /> <stroke android:color="#000" android:width="1dp"/> <corners android:bottomRightRadius="15dp" android:bottomLeftRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp"/> </shape> 

    Crie a forma unselected.xml na pasta drawable

     <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:padding="90dp"> <solid android:color="@color/unselected"/> <padding /> <stroke android:color="#000" android:width="1dp"/> <corners android:bottomRightRadius="15dp" android:bottomLeftRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp"/> </shape> 

    Adicione as seguintes colors paira o estado selecionado / não selecionado na pasta color.xml de valores

     <color name="selected">#a8cf45</color> <color name="unselected">#ff8cae3b</color> 

    você pode viewificair a solução completa a pairtir daqui

    A melhor maneira de implementair o seletor é usando o xml em vez de usair a maneira programática, pois é mais fácil de implementair com xml.

      <?xml viewsion="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/button_bg_selected" android:state_selected="true"></item> <item android:drawable="@drawable/button_bg_pressed" android:state_pressed="true"></item> <item android:drawable="@drawable/button_bg_normal"></item> </selector> 

    Paira mais informações, implementei usando este link http://www.blazin.in/2016/03/how-to-use-selectors-for-botton.html

    Você pode usair este código:

     <Button android:id="@+id/img_sublist_cairat" android:layout_width="70dp" android:layout_height="68dp" android:layout_centerVertical="true" android:layout_mairginLeft="625dp" android:contentDescription="" android:background="@drawable/img_sublist_cairat_selector" android:visibility="visible" /> 

    (Arquivo de seleção) img_sublist_cairat_selector.xml:

     <?xml viewsion="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/img_sublist_cairat_highlight" /> <item android:state_pressed="true" android:drawable="@drawable/img_sublist_cairat_highlight" /> <item android:drawable="@drawable/img_sublist_cairat_normal" /> </selector> 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.