总结一下2013.8.14号学到的东西,主要是在工程中调用别人的字体Engine,修改字体。虽然Demo没有做完,但是还是学到了不少的东西。
1.InputStream To byte[] ——将InputStream读入到byte[]中
public static byte[] getBytes(InputStream is)
throws Exception
{
byte[] data = null;
Collection chunks = new ArrayList();
byte[] buffer = new byte[1024*1000];
int read = -1;
int size = 0;
while((read=is.read(buffer))!=-1)
{
if(read>0)
{
byte[] chunk = new byte[read];
System.arraycopy(buffer,0,chunk,0,read);
chunks.add(chunk);
size += chunk.length;
}
}
if(size>0)
{
ByteArrayOutputStream bos = null;
try
{
bos = new ByteArrayOutputStream(size);
for(Iterator itr=chunks.iterator();itr.hasNext();)
{
byte[] chunk = (byte[])itr.next();
bos.write(chunk);
}
data = bos.toByteArray();
}
finally
{
if(bos!=null)
{
bos.close();
}
}
}
return data;
}
2.工程中调用OS文件
a. 将.OS文件放到工程libs\armeabi 文件夹下;
b. 在工程中创建于os库中路径相同的包文件。注意包文件的路径要和os文件的路径完全相同。(可以用记事本打开os文件,只看里面不是乱码的部分就可以判断出os的包路径)
c. 在上一步的类里调用os库中的方法(需要用native修饰),即可。
3.自定义Typeface,修改字体
a. 将字体文件(.ttf)添加到工程的assets文件夹下;
b. 将字体路引入TypeFace,如下所示。FONT_XJ是我定义的路径变量,这里只要把assets文件夹下的字体文件路径加上就行了。
private static String FONT_XJ= "fonts/XJ2312F-test.ttf";
*********************************************************************************
TextView title = (TextView) this.findViewById(R.id.title);
title.setTextSize(20);
Typeface typefaceBDCN = Typeface.createFromAsset(this.getAssets(),
FONT_XJ);
title.setTypeface(typefaceBDCN);
To be continue...