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设置文本框内文本与图像之间的间距

Android TextView高级特性使用的更多相关文章

  1. Android开发之TextView高级应用

    Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大家分享一下TextView的一些使用技巧. A ...

  2. Visual Studio 2015 速递(4)——高级特性之移动开发

    系列文章 Visual Studio 2015速递(1)——C#6.0新特性怎么用 Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力) Visual Studi ...

  3. Java开发知识之Java类的高级特性,内部类.以及包使用.跟常量关键字

    Java开发知识之Java类的高级特性,内部类.以及包使用.跟常量关键字 一丶Java中包的机制 首先包其实就是个文件夹.作用就是管理类. Java中每次定义一个类的时候.通过Java编译之后.都会生 ...

  4. Visual Studio 2015速递(4)——高级特性之移动开发

    系列文章 Visual Studio 2015速递(1)——C#6.0新特性怎么用 Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力) Visual Studi ...

  5. Android开发——RecyclerView特性以及基本使用方法(二)

    0.  前言 随着Android的发展,虽然ListView依旧重要,但RecyclerView确实越来越多的被大家使用.但显然并不能说RecyclerView就一定优于ListView,而是应该根据 ...

  6. Android开发——RecyclerView特性以及基本使用方法(一)

    )关于点击事件,没有像ListView那样现成的API,但是自己封装起来也不难,而且我们使用ListView时,如果item中有可点击组件,那么点击事件的冲突也是一个问题,而在RecyclerView ...

  7. Android O新特性和行为变更总结zz

    https://mp.weixin.qq.com/s/Ezfm-Xaz3fzsaSm0TU5LMw Android O 行为变更https://developer.android.google.cn/ ...

  8. PHP高级特性-反射Reflection以及Factory工厂设计模式的结合使用[代码实例]

    PHP高级特性-反射以及工厂设计模式的结合使用 [结合 Laravel-Admin 代码实例讲解] 利用反射来实现工厂模式的生产而无需创建特定的工厂类 本文地址http://janrs.com/?p= ...

  9. ActiveMQ中的Destination高级特性(一)

    ---------------------------------------------------------------------------------------- Destination ...

随机推荐

  1. 一些有用的Javascript Function :-)

    1.验证完整的日期格式:(yyyy-MM-dd)function checkDate(RQ) { var date = RQ; var result = date.match(/^(\d{1,4})( ...

  2. wampserver 2.5 首页链接问题,wampserver Your Projects

    在wampserver 2.5之后,在首页的Your projects里面,链接的地址为http://直接加你的系统名称,会导致无法访问, 正常的应该为http://localhost+你的系统名称, ...

  3. 《利用Python进行数据分析》第8章学习笔记

    绘图和可视化 matplotlib入门 创建窗口和画布 fig = plt.figure() ax1 = fig.add_subplot(2,2,1) ax2 = fig.add_subplot(2, ...

  4. unity渲染层级关系小结(转存)

    最近连续遇到了几个绘制图像之间相互遮挡关系不正确的问题,网上查找的信息比较凌乱,所以这里就把自己解决问题中总结的经验记录下来. Unity中的渲染顺序自上而下大致分为三层. 最高层为Camera层,可 ...

  5. Replication的犄角旮旯(七)-- 一个DDL引发的血案(下)(聊聊logreader的延迟)

    <Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...

  6. CentOs 7怎么联网

    在安装好Centos7后,网络还不能正常使用,需要我们手动配置.并且Linux的网络配置并不太容易,新手经常不知道从何开始.为了解决这个令大家头疼的问题,我在此将成功的配置过程与大家分享.希望大家都能 ...

  7. RCP:拖拽功能的实现 Drag and Drop

    SWT中的拖拽是使用的org.eclipse.swt.dnd. 有三个需要密切注意的类: 1.DragSource 2.DropTarget 3.Transfer DragSource封装了需要被拖拽 ...

  8. jquery插件——点击交换元素位置(带动画效果)

    一.需求的诞生 在我们的网页或者web应用中,想要对列表中的元素进行位置调整(或者说排序)是一个常见的需求.实现方式大概就以下两种,一种是带有类似“上移”.“下移”的按钮,点击可与相邻元素交换位置,另 ...

  9. 用于主题检测的临时日志(431b1c14-8b75-4f42-994f-cfda72208c10 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)

    这是一个未删除的临时日志.请手动删除它.(3bf68152-fcac-4628-92d6-3f8f4d5e0ee4 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)

  10. [硬件项目] 2、汽车倒车雷达设计——基于专用倒车雷达芯片GM3101的设计方案与采用CX20106A红外线检测芯片方案对比

    前言 尽管每辆汽车都有后视镜,但不可避免地都存在一个后视镜的盲区,倒车雷达则可一定程度帮助驾驶员扫除视野死角和视线模糊的缺陷,提高驾驶安全性.上一节已经分析清倒车雷达的语音模块(上一节),本节将深入分 ...