zoukankan      html  css  js  c++  java
  • Android TextView高级特性使用

    TextView一般都是用来显示一段文本,这里说的高级特性主要是一些我们平常不太常用的属性。包括文字阴影、自定义字体、html嵌入多格式、字体加粗、插入图片。这些特性平时开发APP的时候,可能一般使用不多,不过需要的时候却是很有用的特性。
    之所以写这篇文章是因为今天修改Launcher里面界面字体的时候,遇到些问题,而Launcher的图标都是TextView做的,因此查找了一些TextView的特殊属性。
    1、文字阴影

    1. //Edited by mythou
    2. //http://www.cnblogs.com/mythou/
    3. android:shadowColor="#000000"
    4. android:shadowDx="15.0"
    5. android:shadowDy="5.0"
    6. android:shadowRadius="2.5"
    复制代码


    shadowColor设置阴影颜色;shadowDx设置阴影水平偏移量;shadowDy设置阴影垂直偏移量;shadowRadius设置阴影半径。这里需要说明一点是,如果需要阴影和原字体重叠,需要设置shadowDx和shadowDy为-1,并且把shadowRadius设置大一点。我们可以直接把上面属性嵌入到TextView标签,也可以使用<style>来定义。
    /

    1. /Edited by mythou
    2. //http://www.cnblogs.com/mythou/
    3. <?xml version="1.0" encoding="utf-8"?>
    4. <resources>
    5. <style name="LauncherWorkspaceText">
    6. <item name="android:paddingLeft">4px</item>
    7. <item name="android:paddingBottom">4px</item>
    8. <item name="android:textColor">#FFFFFF</item>
    9. <item name="android:textSize">60sp</item>
    10. <item name="android:shadowColor">#000000</item>
    11. <item name="android:shadowDx">-1</item>
    12. <item name="android:shadowDy">-1</item>
    13. <item name="android:shadowRadius">4</item>
    14. </style>
    15. </resources>
    复制代码

    上面是我定义的一个用于Launcher界面按钮文字大小的Style标签,在使用的时候,可以直接引用这个Style即可。

    1. //Edited by mythou
    2. //http://www.cnblogs.com/mythou/
    3. <TextView
    4. style="@style/LauncherWorkspace"
    5. android:id="@+id/player"
    6. android:layout_width="160dp"
    7. android:layout_height="160dp"
    8. android:background="@drawable/player"
    9. />
    复制代码


    2、自定义字体
    TextView可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,Typeface使用TTF字体文件来设置字体。因此我们只要找到合适的TFT字体文件,然后放到程序里面即可。TFT字体在我们window系统里面就有很多,例如微软雅黑。
    在程序中使用Typeface来设置字体:
    第一步,在assets目录下新建fonts目录,把TTF字体文件放到这里。
    第二步,程序中使用下面代码设置自定义字体:

    1. //Edited by mythou
    2. //http://www.cnblogs.com/mythou/
    3. TextView  tv = (TextView)findViewById(R.id.textView);
    4. //得到AssetManager
    5. AssetManagermgr=getAssets();
    6. //根据路径得到Typeface
    7. Typefacetf=Typeface.createFromAsset(mgr, "fonts/yahei.TTF");
    8. //设置字体
    9. tv.setTypeface(tf);
    复制代码


    3、TextView使用Html格式文本
    TextView里面支持识别Html格式,因此,我们可以利用Html代码标签定义多元化的TextView显示。

    1. /Edited by mythou
    2. //http://www.cnblogs.com/mythou/
    3. String textStr1 = "<font color="#ffff00">Html颜色标签测试</font><br>";
    4. tv.setText(Html.fromHtml(textStr1));
    复制代码


    4、字体加粗
    在xml布局文件中设置字体加粗:

    1. android:textStyle=”bold”
    复制代码


    这个属性可以将英文设置成粗体,但是不能将中文设置成粗体,将中文设置成粗体的方法是:使用TextPaint的仿“粗体”设置setFakeBoldText为true。

    1. tv.getPaint().setFakeBoldText(true);
    复制代码


    5、插入图片
    插入图片有两种方法,第一种方法使用Html嵌入,不过需要一些转换工作。使用ImageGetter类来对图片的src属性进行转换。

    1. //Edited by mythou
    2. //http://www.cnblogs.com/mythou/
    3. String imgStr = "<img src=""+R.drawable.player+""/>";
    4. Html.ImageGetter imageGetter = new Html.ImageGetter()
    5. {
    6. public Drawable getDrawable(String arg0)
    7. {
    8. // TODO Auto-generated methodstub
    9. int id =Integer.parseInt(arg0);
    10. Drawable draw =getResources().getDrawable(id);
    11. draw.setBounds(5, 5, 160,160);
    12. return draw;
    13. }
    14. };
    15. //设置图片
    16. tv.append(Html.fromHtml(imgStr,imageGetter,null));
    复制代码


    第二种方法是使用xml布局文件的android:drawableXXX属性来实现插入图片。
    drawableBottom是在文本框内文本的底端绘制指定图像
    drawableLeft是在文本框内文本的左边绘制指定图像
    drawableRight是在文本框内文本的右边绘制指定图像
    drawableTop是在文本框内文本的顶端绘制指定图像
    drawablePadding设置文本框内文本与图像之间的间距

  • 相关阅读:
    Rust 包管理器 Cargo 入门
    如何设置对企业批量的图文档加密?2021企业首选公司文档加密方案,宁波风奥金甲数据防泄漏
    跟坚哥学QUIC系列:加密和传输握手
    如何在SQLServer中处理每天四亿三千万记录的
    高德最佳实践:Serverless 规模化落地有哪些价值?
    浅谈 Pull Request 与 Change Request 研发协作模式
    Dbeaver连接国产数据库人大金仓
    我对云原生软件架构的观察与思考
    Java Web整合开发(20) -- Hibernate入门
    2 修改与恢复
  • 原文地址:https://www.cnblogs.com/anee/p/3465520.html
Copyright © 2011-2022 走看看