如何在android中实现自定义字体

时间:2014-12-12 16:33:32

标签: android android-listview textview true-type-fonts

我正在使用自定义数组adpter实现自定义列表视图。在每一行中,都有文本视图和图像。我想在文本视图中添加阿拉伯语的自定义字体。任何人都可以帮我加载自定义字体。提前感谢您的帮助。

以下是我创建文本视图对象的MyViewHolder的代码:

public static class MyViewHolder {
    TextView textViewArabic;
    ImageView imgView;

    public MyViewHolder(View v, Context context) {
        // TODO Auto-generated constructor stub
        textViewArabic = (TextView) v.findViewById(R.id.tvArabic);
        imgView = (ImageView) v.findViewById(R.id.imgView);
    }
}

4 个答案:

答案 0 :(得分:1)

尝试以下代码:    内部getView()方法

myHolder.textViewArabic.setTypeface(Typeface.createFromAsset(getContext().getAssets(),
        "custom_font_file_name.ttf"););

字体文件必须位于assets/fonts/custom_font_file_name.ttf

还有另一种方法可以覆盖整个布局的字体。

答案 1 :(得分:0)

下载TruTypeFace字体(.ttf)并将其放在资产文件夹中。添加以下代码以从设置该字体到文本视图的资产中获取该字体,如下面的代码所示。

public static class MyViewHolder {
  TextView textViewArabic;
  ImageView imgView;
  Typeface face;

  public MyViewHolder(View v, Context context) {
   // TODO Auto-generated constructor stub
   textViewArabic = (TextView) v.findViewById(R.id.tvArabic);
   imgView = (ImageView) v.findViewById(R.id.imgView);
   face = Typeface.createFromAsset(context.getAssets(),
                    "fonts/_PDMS_Saleem_QuranFont.ttf");
   textViewArabic.setTypeface(face);
  }
 }

答案 2 :(得分:0)

尝试以下代码。

font = Typeface.createFromAsset(context.getAssets(), "font name.ttf");
TextView details = (TextView) findViewById(R.id.item_name);
details.setTypeface(font);

您需要将您的字体存储在assets文件夹中(src-> main-> assets)

希望这有帮助

答案 3 :(得分:0)

在/ res / layouts中,您需要在activity_main.xml文件中包含要创建的自定义文本视图。

/res/layout/activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:customfontdemo="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:gravity="center">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:padding="12dp"
        android:text="Standard Android Font" />

     <com.authorwjf.customfontdemo.MyTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="32sp"
        android:padding="12dp"
        customfontdemo:fontName="pipe_dream.ttf"
        android:text="Custom Android Font" />

</LinearLayout>

有关详细信息,请参阅here