2012-09-16 20 views
5

Używam selektora i nie wiem, jak ustawić rozmiar tekstu. Może robię coś źle - pomocjak ustawić rozmiar tekstu za pomocą selektora?

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

Mam to samo pytanie z wami, ale wciąż nie może znaleźć odpowiedź :) –

Odpowiedz

-1

Stwórz własną style.xml i zdefiniować styl tekstu. A następnie ustaw styl w selektorze.

style.xml

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

I w selektorze

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

Hi @Apurva, gdzie umieścić plik wyboru? Czy to jest w losowaniu? – Elye

+0

@elye yes in drawable oczywiście – Apurva

+3

Czy to naprawdę działa? Otrzymuję ostrzeżenie "Nieznany styl atrybutu". Selektory AFAIK działają tylko z rysunkami, a nie stylami. – kalehv

2

Można użyć selektora pod zasobów animator:

<!-- 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> 

Można mieć 0 Czas na skoki prosto do wartości lub tam wstawić czas trwania.

Następnie używać go ustawić android:stateListAnimator na widoku:

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

Jest to przydatne, jednak stwierdziłem, że użycie wartości sp w ObjectAnimator 'valueTo/From' powoduje dwukrotne przekonwertowanie go na wartość float, ponieważ' TextView.setTextSize (float) 'traktuje wartość jako sp. Brak określenia jednostki powoduje, że rozmiary tekstu są zgodne z pozostałymi zasobami. – Zharf

+0

Nie śledzę, może napisać jako odpowiedź. – weston

Powiązane problemy