整理一下自己收集的一些源代碼,加上自己的一些分析記錄下來,方便自己以後查閱。
字體的豎直排版是通過繼承view寫的一個TextViewBertical類實現的,在main.xml中使用了HorzontalScrollView控件,實現了水平的歡動,把自定義的TextViewVertical直接放在HorzontalScrollView中。
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/sv"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffffff" >
<org.guyue.TextViewVertical android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="@null"
textSize="60"/>
</HorizontalScrollView>
然後直接在TestFontActivity中找到相應的控件,
tv=(TextViewVertical)findViewById(R.id.tv);
sv=(HorizontalScrollView)findViewById(R.id.sv);
接着進行相應的字體設置,
Typeface face=Typeface.createFromAsset(getAssets(),"fonts/stxingkai.ttf");
tv.setTypeface(face);
//設置文字內容
tv.setText("測試\n這是一段測試文字,主要是爲了測試豎直排版TextView的顯示效果。" +
"爲了能更好的體驗感受,我特意增加了比較接近書法的字體和顏色," +
"\n豎直排版的TextView需要配合HorizontalScrollView使用纔能有更佳的效果。當然,如果你有時間的話,也可以給這個類" +
"加上滾動的功能。");
主要功能的實現都是放在了自定義的TextViewVertical類中,對一些view的屬性進行了設置(設置文字,字體大小,字體顏色,設置寬度),還有一些對字體寬和高的處理計算,行間距的設置,背景的設置,最後通過畫筆將其設置的信息展現出來。通過這個例子可以看出,如果想實現更好的效果還是自己去實現一些類的定義,通過android中提供的最原始的功能去繪製出自己的功能,對Matrix Paint onDraw canvas內容的理解
源碼下載地址:
http://download.csdn.net/detail/walker02/4208542