2012-09-16 15 views
5

Uso un selector y no sé cómo configurar el tamaño del texto. Tal vez estoy haciendo algo mal - ayudarcómo configurar el tamaño del texto usando el selector?

arrow.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@drawable/button_pressed" android:state_pressed="true" android:color="@color/green"></item> 

</selector> 
+0

tengo la misma pregunta con usted, pero todavía no puedo encontrar la respuesta :) –

Respuesta

-1

Crear su propio style.xml y definir el estilo de texto. Y luego establece el estilo en tu selector.

style.xml

<style name="myStyle"> 
    <item name="android:textSize">9px</item> 
    <item name="android:textColor">#fff</item> 
    <item name="android:textStyle">bold</item> 
</style> 

Y en su selector de

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
      style="@style/myStyle" /> 
</selector> 
+0

Hola @Apurva, dónde poner el archivo de selección? ¿Está en el dibujable? – Elye

+0

@elye sí en drawable por supuesto – Apurva

+3

¿Realmente funciona? Recibo una advertencia "Estilo de atributo desconocido". Los Selectores AFAIK solo funcionan con estilos arrastrables y no estilos. – kalehv

2

Puede utilizar un selector de bajo recursos animador:

<!-- res/animator/text_size.xml --> 
<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true"> 
     <set> 
      <objectAnimator 
       android:duration="0" 
       android:propertyName="textSize" 
       android:valueTo="18sp" 
       android:valueType="floatType"/> 
     </set> 
    </item> 
    <item android:state_focused="false"> 
     <set> 
      <objectAnimator 
       android:duration="0" 
       android:propertyName="textSize" 
       android:valueTo="10sp" 
       android:valueType="floatType"/> 
     </set> 
    </item> 
</selector> 

Usted puede tener 0 de duración para saltar directamente al valor o pon una duración allí.

Luego de usarlo establecer android:stateListAnimator en su vista:

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button 3" 
    android:stateListAnimator="@animator/text_size"/> 
+0

Esto es útil, sin embargo, encontré que el uso de valores sp en objectAnimator 'valueTo/From' hace que se convierta en un flotante dos veces porque' TextView.setTextSize (float) 'trata el valor como sp. No especificar una unidad mantiene los tamaños de texto consistentes con el resto de los recursos. – Zharf

+0

No sigo, tal vez escribir como una respuesta. – weston

Cuestiones relacionadas