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

我们来先看看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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值