用过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 <TextView22 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备忘录,但是觉得精力有限了~吃完饭写文章到现在,但愿我和大家都有收获~