用过iphone的朋友一定会很记得ios系统自带的备忘录,里面的字体非常的可爱,所以大家有没有想过把这个字体弄到你的android设备中呢?
其实android提供了非常方便的字体导入了方法了,这里不得不提到一个几乎快被大家遗忘了的一个文件夹assets.其实assets文件夹是用来放置程序要使用的资源的,和res下面的raw文件夹基本作用相同,起主要的区别有下面几点:
- 在创建android project的时候assets会自动生成,raw文件夹需要带res下面手动创建
- assets下面的资源不会被编译成二进制文件,所以也不会生成id,所以只能用路径去引用;raw里面的文件也不会被编译成二进制但是可以用R.id引用。
- assets支持多级目录,而raw则不可以
今天我们所需要的字体,就放在assets文件夹下面fonts子目录中:
关于大家如何取得系统的字体,推荐一个小软件ifunbox,还需要一个破解的ios设备,安装好itunes,就是如下的界面
就像windows的资源管理器一样,你可以搜索iphone的很多内置资源了,包括iphone备忘录的背景图,这次demo的例子中的字体,我并不是从这里面找的,是以前从网上下载的,有需要的可以联系我~分享一下。
言归正传,如何使用这个字体,其实更确切的说是如何使用assets文件夹下面的资源。
android提供了一个关键的类 AssetManager,和很多manager类一样,他就是提供读取assets文件的类。通过Context的方法getAssets就可以返回一个AssetMnaager对象。
下面就是如何使用字体的代码:
1 @Override
2 public void onCreate(Bundle savedInstanceState) {
3 super.onCreate(savedInstanceState);
4 setContentView(R.layout.main); //载入布局
5 Typeface myTypeface = Typeface.createFromAsset(getAssets(),"fonts/iosnote.ttf");
6 //实例化一个字体对象
7
8 TextView iostv = (TextView)findViewById(R.id.iosTextView);
9 iostv.setTypeface(myTypeface);
10 //载入ios中的字体
11
12 Log.i("YUI", this.getClass()+"is created!");
13 }
在布局文件中,还是沿用上一篇博文中的例子吧,添加了一个新的TextView用来加载新的字体,而下面的TextView则用android默认的字体。
1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="fill_parent"
4 android:layout_height="fill_parent"
5 android:orientation="vertical" >
6
7 <TextView
8 android:id="@+id/iosTextView"
9 android:layout_width="fill_parent"
10 android:layout_height="wrap_content"
11 android:text="@string/ios"
12 android:textSize="24sp"
13 android:textStyle="bold"/>
14
15 <EditText
16 android:id="@+id/myText"
17 android:layout_width="fill_parent"
18 android:layout_height="@dimen/basic_button"
19 />
20
21 <TextView
22 android:id="@+id/defaultTextView"
23 android:layout_width="fill_parent"
24 android:layout_height="wrap_content"
25 android:text="@string/android"
26 android:textSize="24sp"
27 android:textStyle="bold"/>
28
29 </LinearLayout>
好了现在就可看一看效果了。。。不过这个例子只是演示一下字体罢了,没有任何美学价值。。。。实用价值。。。
上面的就是iphone备忘录的字体了~
其实我一直想做一个和iphone一样的android备忘录,但是觉得精力有限了~吃完饭写文章到现在,但愿我和大家都有收获~