(三十七)Android開發中修改程序字體-創新互聯

1、在Android XML文件中設置系統默認的字體
  可以在XML文件中采用android:typeface設置字體,例如android:typeface=”monospace”。在這里例子中我們在Activity中對android:text=”Hello, World! 您好”分別進行了四種顯示方式,依次為“Sans”,“serif”,“monospace”和系統缺省方式(經試驗缺省采用采用sans)。英文字體有差異,貌似中文字體沒有差異。XML文件如下:

創新互聯公司于2013年開始,是專業互聯網技術服務公司,擁有項目成都網站建設、成都做網站網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元景東做網站,已為上家服務,為景東各地企業和個人服務,聯系電話:18980820575
 <?xml version=“1.0″ encoding=”utf-8″?> 
  <TableLayout android:stretchColumns = “1”>
  <TableRow>
  <TextView android:text=“sans:” 
  android:layout_marginRight=“4px” 
  android:textSize=“20sp” />

  <TextView android:text=”Hello, World! 您好”
  android:typeface=“sans” <!– android:typeface用于指定字體–> 
  android:textSize=“20sp” />
  </TableRow>

  <TableRow> 
  <TextView android:text=“custom:”  /> 
  <TextView android:id=“@+id/c12_custom” 
  android:text=“Hello, World! 您好” 
  android:textSize=“20sp” /> 
  </TableRow> 
  </TableLayout>
  2、使用其他字體(三十七)Android開發中修
改程序字體

1)將新字體的TTF文件copy到assets/fonts/目錄下面,例如我們將“*.ttf”copy了過去。
  2)我們需要將widget設置為該字體,比較遺憾的是,不能直接在XML文件中進行,需要編寫源代碼。

 TextView tv = (TextView)findViewById(R.id.c12_custom);
  //從assert中獲取有資源,獲得app的assert,采用getAserts(),通過給出在assert/下面的相對路徑。在實際使用中,字體庫可能存在于SD卡上,可以采用createFromFile()來替代createFromAsset。 Typeface face = Typeface.createFromAsset (getAssets() , “fonts/timesi.ttf” );
 tv.setTypeface (face);

  在模擬器中先后導入華文行楷的字體,大約4M,但是系統無法識別出該字體,沒有顯示,然后嘗試使用英文字體timesi.ttf,正常。因此Android并非和所有的TTF字體都能兼容,尤其在中文特殊字體的支持會存在問題,對于不兼容的字體,Android不出報錯,只是無法正常顯示。一般而言我們都會使用系統缺省提供的體。

  對于華文行楷字體,我們一開始使用的文件是中文名字,出現報錯,后來我們將之改為全小寫的英文名稱就不會出錯,所以在文件命名上需要注意。

3、一些注意
  使用其他字庫,都會消耗程序的空間,這是要非常注意的。而且這些字庫有時并不能完全提供你所需要的文字。
  舉個例子,省略方式。當文字太多的時候,可以通過省略號省略后面的內容,省略號是使用“…”作為一個字體,可通過android:ellipsize屬性進行設置。如果我們需要使用省略功能,需要確保字體具有省略號。此外,為了保證長度的一直,Android會進行填充處理,除了將一個字符更換為省略符合外,后面的字符將更換為一個特殊的Unicode字符,‘ZERO WIDTH NO-BREAK SPACE’ (U+FEFF)。這個字符并占用任何可視的位置,但是保障了string具有同樣的長度。不是所有的字體都支持這個特殊的字符,可能會引發一些亂碼現象。
  Android是支持國際語言的,但是我們仍需要對custom的字體小心處理。

4、如果一個程序中多處需要修改字體,可以通過使用自定義的textView,代碼如下所示(2)所示,在里面定義方法定義字體,以免N多地方都要使用setTypeface設置字體,非常麻煩。
使用時的代碼如表(1)所示

表(1):
<com.cn21.esafe.utils.CustomFontTextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        android:gravity="center"
        android:textColor="@color/white"
        android:textSize="@dimen/text_title" />
表(2):
package com.cn21.esafe.utils;
import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.widget.TextView;
public class CustomFontTextView extends TextView {
private static Typeface typeface;
public CustomFontTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
        setCustomTypeface(context);
    }
public CustomFontTextView(Context context, AttributeSet attrs) {
super(context, attrs);
        setCustomTypeface(context);
    }
public CustomFontTextView(Context context) {
super(context);
        setCustomTypeface(context);
    }
private void setCustomTypeface(Context context) {
if (typeface == null) {
            typeface= Typeface.createFromAsset(context.getAssets(),
"fonts/fangzhenglanting.ttf");
        }
        setTypeface(typeface);
    }
public static Typeface getTypeface(Context context) {
if (typeface == null) {
            typeface= Typeface.createFromAsset(context.getAssets(),
"fonts/fangzhenglanting.ttf");
        }
return typeface;
    }
}

當前文章:(三十七)Android開發中修改程序字體-創新互聯
當前地址:http://m.kartarina.com/article4/cdccie.html

成都網站建設公司_創新互聯,為您提供商城網站小程序開發網站營銷服務器托管軟件開發營銷型網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都做網站
主站蜘蛛池模板: 国模吧无码一区二区三区| 精品久久无码中文字幕| 亚洲AV无码成人网站在线观看| 麻豆aⅴ精品无码一区二区| 无码日韩人妻av一区免费| 熟妇人妻中文av无码| 亚洲Av永久无码精品黑人| 一本色道无码不卡在线观看| 精品人无码一区二区三区| 亚洲国产91精品无码专区| 精品亚洲成在人线AV无码| 日韩加勒比一本无码精品| 亚洲国产成人精品无码区在线秒播 | 亚洲成AV人片在线观看无码| 国产精品无码免费播放| 人妻丰满熟妇岳AV无码区HD| 中文字幕丰满乱子无码视频| 日韩AV无码一区二区三区不卡| 18精品久久久无码午夜福利| 人妻少妇乱子伦无码专区| 亚洲日韩中文字幕无码一区| 亚洲AV无码乱码国产麻豆穿越 | 久久人妻av无码中文专区| 无码8090精品久久一区| 无码人妻丰满熟妇片毛片| 无码区国产区在线播放| 亚洲中文字幕无码一区| 国产成人无码精品久久久性色| 亚洲国产精品无码久久九九 | 国产成人无码网站| 精品人妻系列无码一区二区三区| 国产羞羞的视频在线观看 国产一级无码视频在线 | 中文字幕av无码无卡免费| 久久午夜夜伦鲁鲁片免费无码| 国产成人无码AⅤ片在线观看| 亚洲AV无码一区二区三区在线观看| 中文字幕无码视频手机免费看| 日韩精品无码一本二本三本| 国产50部艳色禁片无码| 亚洲AV无码一区二区三区DV | 中文字幕无码不卡一区二区三区|