フォントをプロジェクトに接続する

みなさんこんにちは!



Android用のアプリケーションを少なくとも1つ開発した人は誰でも、カスタムフォントをプロジェクトに接続する方法を考えました。 そこでこの質問をしました。 いくつかの方法があります。



ウォーターズもその1つです。

String custom_font = "fonts/custom_font.ttf"; Typeface CF = Typeface.createFromAsset(getAssets(), custom_font); ((TextView) findViewById(R.id.sometextview)).setTypeface(CF);
      
      







多くのTextView要素があり、それぞれの要素にフォント接続を記述したとしましょう-たくさんの行を取得します。 これは私には合わず、私はさらに検索し始めました。 私が実際に共有したかったオプションの1つを見つけました。



TextViewPlusクラスを作成します。



TextViewPlus.java

 package com.example; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Typeface; import android.util.AttributeSet; import android.util.Log; import android.widget.TextView; public class TextViewPlus extends TextView { private static final String TAG = "TextView"; public TextViewPlus(Context context) { super(context); } public TextViewPlus(Context context, AttributeSet attrs) { super(context, attrs); setCustomFont(context, attrs); } public TextViewPlus(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); setCustomFont(context, attrs); } private void setCustomFont(Context ctx, AttributeSet attrs) { TypedArray a = ctx.obtainStyledAttributes(attrs, R.styleable.TextViewPlus); String customFont = a.getString(R.styleable.TextViewPlus_customFont); setCustomFont(ctx, customFont); a.recycle(); } public boolean setCustomFont(Context ctx, String asset) { Typeface tf = null; try { tf = Typeface.createFromAsset(ctx.getAssets(), asset); } catch (Exception e) { Log.e(TAG, "Could not get typeface: "+e.getMessage()); return false; } setTypeface(tf); return true; } }
      
      







属性ファイル:

attrs.xml (解像度/値)

 <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="TextViewPlus"> <attr name="customFont" format="string"/> </declare-styleable> </resources>
      
      







そして実際にはmain.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:foo="http://schemas.android.com/apk/res/com.example" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <com.example.TextViewPlus android:id="@+id/textViewPlus1" android:layout_height="match_parent" android:layout_width="match_parent" android:text="@string/showingOffTheNewTypeface" foo:customFont="saxmono.ttf"> </com.example.TextViewPlus> </LinearLayout>
      
      







フォントファイル「saxmono.ttf」は「assets」フォルダーに配置する必要があります



それだけです:)



ソース:




All Articles