2016-02-08 23 views
5

Çizelge simgesi, seçilebilir yerine, seçici olarak kullanılabilir mi?XML seçicisinde yazı tipi simgesi (font-awesome) nasıl kullanılır

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

cevap

4

Metin rengini değiştirilebilen yerine seçici olarak değiştirdim. İyi çalışıyor. TextView'un

public class MyTextView extends TextView { 

    public MyTextView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
     init(context); 
    } 

    public MyTextView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     init(context); 
    } 

    public MyTextView(Context context) { 
     super(context); 
     init(context); 
    } 

    private void init(Context context) { 
     Typeface tf = Typeface.createFromAsset(context.getAssets(), 
       "fontawesome-webfont.ttf"); 
     setTypeface(tf); 
    } 
} 

uzanır MyTextView sınıf oluşturun

text_color_selector.xml seçici

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:color="#ff0000" android:state_pressed="true" /> 
    <!-- pressed --> 
    <item android:color="#ff0000" android:state_focused="true" /> 
    <!-- focused --> 
    <item android:color="#000000" /> 
    <!-- default --> 
</selector> 

oluşturma Ve sonra

<com.example.mohsin.myapplication.MyTextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textSize="50sp" 
     android:clickable="true" 
     android:textColor="@drawable/text_color_selector" 
     android:text="\uF242"> 

    </com.example.mohsin.myapplication.MyTextView> 
1
aşağıdaki gibi

Sen font-müthiş simgeleri kullanabilirsiniz:

1 - istediğim simgeler için karakter varlıkları Bulunan, this kullanarak - varlıklarınızı dizinine

2 Kopyala font-müthiş yazı tipi dosyası sayfa

3 - Her simge için strings.xml dosyasında giriş oluşturun. Ör:

<string name="icon_eg">&#xf13d;</string> 

4 - onCreate yönteminde yazı tipi yükler ve uygun Görünümler için ayarlayın:

Typeface font = Typeface.createFromAsset(getAssets(), "fontawesome-webfont.ttf"); 
... 
Button button = (Button)findViewById(R.id.like); 
button.setTypeface(font); 

görünümde dize başvuru unutmayın. Daha fazla bilgi için bağlantıyı () . this10 bağlantıyı denetleyin.

bunu seçici olarak kullanamazsınız. ama simgelerini dinamik olarak değiştirebilirsiniz.

+0

Cevabınız için teşekkürler, ancak yazı tipi (metin) olduğu için, basit simge yerine, –

+0

basit simge yerine kullanmak istiyorum. – droidev

1

kolay yolu düzeni kullanmak!

Android Destek Kitaplığı 26 ve Android Studio 3.0 sürümünden bu yana, XML'de yerel yazı tipi desteklerini kullanabilirsiniz.

https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html

  1. res dizinde yazı dizin oluşturun
  2. yazı dizine
  3. Kopya yazı tipi dosyası
  4. yazı dosyası yakınında yeni Yazı kaynak dosyası oluşturun

    <?xml version="1.0" encoding="utf-8"?> 
    <font-family xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:app="http://schemas.android.com/apk/res-auto"> 
        <font 
         android:font="@font/font_awesome_font" 
         android:fontStyle="normal" 
         android:fontWeight="400" 
         app:font="@font/font_awesome_font" 
         app:fontStyle="normal" 
         app:fontWeight="400" /> 
    </font-family> 
    
    API 26 için

    kullanın android:font ve 14'ten beri destek API'si için app:font.

  5. Şimdi TextView içinde fontFamily kullanabilirsiniz:

    <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:fontFamily="@font/font_awesome" 
        android:text="\uF0da" /> 
    
  6. \u

NOT ile font-müthiş karakter girmek UTF kodu eklemek için: Android Studio tasarım önizleme gelmez' Yazı tipi-müthiş char görüntüleme t ama uygulamada doğru çalışıyor.