整理一下自己收集的一些源代码,加上自己的一些分析记录下来,方便自己以后查阅。
字体的竖直排版是通过继承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