Assets和Res的区别以及对Textview字体的设置

来源:互联网 发布:口碑好的java培训机构 编辑:程序博客网 时间:2024/05/09 12:44

我们来先看看android工程文件下的Assets和Res文件有什么区别?

相同点: 都可以用来存放资源,例如字体文件不会编译成二进制文件

不同点:1.asset文件内东西不会在R文件中生成相应的标记并通过AssetManager进行访问获取资源,res文件的资源会在R文件生成相应的标记,通过Id获取资源2.asset可以自己创建文件夹,而res有固定的那几个比如 res/xml res/anim res/raw 3.打包时,asset中的资源不管三七二十一都会打入程序中,而res文件会判断是否用到,没用到的不会打入包里


Asset文件中我们也可以存放一些json文件,从而读取他们(以流的形式)

<span style="font-size:18px;">   InputStream assetsStream = null;        StringBuffer dataBuffer = new StringBuffer();        try {            assetsStream = MainActivity.this.getAssets().open("my_json.json");            byte[] data = new byte[1024];            int bufferLength = 0;            while ((bufferLength = assetsStream.read(data)) > 0) {                dataBuffer.append(new String(data,0,bufferLength));            }        } catch (IOException e) {            e.printStackTrace();        }finally {            if(assetsStream != null)            {                try {                    assetsStream.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }</span>
读取asset文件下的字体文件

<span style="font-size:18px;">  typeface=Typeface.createFromAsset(getAssets(), "fonts/a_caslon_pro_regular.ttf");</span>
上面看见了吧   我们可以下在assets文件下创建fonts文件夹来存放字体文件


接下来我们来讲讲如何对TextView设置字体

1.可以通过html来实现

2.可以通过assets文件下的ttf字体文件来设置

3.综合利用上面的两种方法

4.设置style(这里  这个方法  就忽略了 基本大家都会)


那么我们来看看如何操作吧!!!


方法一:可以通过html来实现

1.通过Hbuilder来编写一段html代码 我们可以直接运行看到效果

2.通过Html.fromHtml()方法实现

代码如下:

<span style="font-size:18px;">   <TextView        android:id="@+id/text"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textSize="32sp" /></span>

<span style="font-size:18px;">   String s = " <p color=\"#000000\"  style=\"background: #1B6D85;\"><big>H</big>ARD <big>W</big>ORK</p>";        tv=(TextView)findViewById(R.id.text);        tv.setText(Html.fromHtml(s));</span>

方法二:可以通过assets文件下的ttf字体文件来设置

1.我们在main文件下新建assets文件再在其文件下新建fonts文件然后把自己的ttf字体文件考入

2.用Typeface.createFromAsset()找到字体文件

3.对应控件设置字体

代码如下:

<span style="font-size:18px;">    <TextView        android:id="@+id/text1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Work Hard"        android:textSize="32sp" /></span>

<span style="font-size:18px;">  tv1=(TextView)findViewById(R.id.text1);        typeface=Typeface.createFromAsset(getAssets(), "fonts/a_caslon_pro_regular.ttf");        tv1.setTypeface(typeface);</span>


方法三:综合利用

代码如下:

<span style="font-size:18px;"> <TextView        android:id="@+id/text2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Work Hard"        android:textSize="32sp" /></span>

<span style="font-size:18px;">   tv2=(TextView)findViewById(R.id.text2);        tv2.setText(Html.fromHtml(s));        tv2.setTypeface(typeface);</span>

效果如下:




0 0
原创粉丝点击