Android TextView 常见问题与使用总结

一、文字显示行数设置

1. 仅显示一行文字

android:singleLine="true"

setTransformationMethod(TransformationMethod)

2. 设置最多显示几行文字

android:maxLines="3"

TextView.setMaxLines(3);

3. 设置文字最大显示行数后,可是文字可能显示不全。能够设置省略符号。表示还有内容还未显示

android:ellipsize="end"

end - 省略号在结尾。最经常使用方式

start - 省略号在开头

middle - 省略号在中间

marquee -  跑马灯显示,总是运行文字滚动动画。影响性能

4. 不显示padding

android:includeFontPadding="false"

5. 行间距

android:lineSpacingExtra=""

二、文字显示长度设置

1. 设置最大显示长度。单位是px

android:maxWidth="" / TextView.setMaxWidth(int)

左中右三个TextView 使用 RelativeLayout 布局, 中间的文字假设会改变长度的话,不会自己主动调整,导致右側文字还是靠右

使用maxWidth能够解决以上问题

2. 最多显示字符个数

android:maxLength="" / TextView.setFilters(InputFilter)

不会区分中文还是英文。比如设置3,能够显示3个汉字,可是也仅能显示3个英文单字。

3. 动态改动文字大小

须要注意。不能直接使用TextView.setSize(pxValue);

setTextSize (TypedValue.COMPLEX_UNIT_PX, pxValue);

文字大小类型详见TypedValue文档

三、TextView 设置不相同式文本

1. 文字占位符

有些时候一段字符大部分都是固定的。仅中间一两位是变动的,并且想在string.xml中进行声明文本部分。比如:“2015年03月14日”

在res/values/string.xml中

<resources>

<string name="date">2015年03月%1$d日</string>

</resources>

textView.setText(getResoure.getString(R.string.date, 14));

$d 是占位符,很多其它信息详见文档

Formatter

http://developer.android.com/reference/java/util/Formatter.html

2. 一行文字多种颜色

<resources>

<string name="love_world">&lt;font color=\"#aaaaaa\"&gt;%1$s文字部分&lt;/font&gt;</string>

</resources>

使用时须要

String string = getResources().getString(R.string.love_world, nameStr);

TextView.setText(Html.fromHtml(string));

3. 点击文字改变颜色

textView.setTextColor( getResources().getColorStateList(R.color.selector) );

四、 android drawTextTextView注意

忽略了baseLine 到 Bottom的距离

http://blog.csdn.net/liucheng2009/article/details/7053837

五、设置文字使用什么单位

文字大小使用dip。由于即使屏幕密度同样的不同手机sp转换为px的值不一致

时间: 2024-08-12 14:37:28

Android TextView 常见问题与使用总结的相关文章

Android TextView 常见问题汇总

android:singleLine="true" 数字英文字母显示,省略号只有一个点的问题. 问题描述: 使用SingleLine属性时,当字符串含有纯数字或者字母的时候,自动截取的省略号,只有一个点.而汉字 字符串或者混合字符串就不会出现该问题. 问题解决方法: 据悉这是Android4.0后原生代码的Bug,TextView赋值的字符串后边接一个 全角的空格 singleLine="true"与Android:maxLines="1"的不同

Android TextView里直接显示图片的三种方法

方法一:重写TextView的onDraw方法,也挺直观就是不太好控制显示完图片后再显示字体所占空间的位置关系.一般如果字体是在图片上重叠的推荐这样写.时间关系,这个不付源码了. 方法二:利用TextView支持部分Html的特性,直接用api赋图片.代码如下: //第一种方法在TextView中显示图片 String html = "<img src='" + R.drawable.circle + "'/>"; ImageGetter imgGett

Android TextView 横向滚动(跑马灯效果)

Android TextView 中当文字比较多时希望它横向滚动显示,下面是一种亲测可行的方法. 效果图: 1.自定义TextView,重写isFocused()方法返回true,让自定义TextView一直处于获取焦点状态. package com.example.shen.marqueedemo; import android.content.Context; import android.util.AttributeSet; import android.widget.TextView;

Android TextView 添加下划线的几种方式

总结起来大概有5种做法: 1.当文字中出现URL.E-mail.电话号码等的时候,可以将TextView的android:autoLink属性设置为相应的的值, 如 果是所有的类型都出来就是android:autoLink="all".当然也可以在java代码里 做,textView01.setAutoLinkMask(Linkify.ALL); 2.将要处理的文字写到一个资源文件,如string.xml,然后的java代码里引用(直接写在代码了是不可行的,会直接把文字都显示处理) 3

Android TextView内容过长加省略号,点击显示全部内容

在Android TextView中有个内容过长加省略号的属性,即ellipsize,用法如下: 在xml中: android:ellipsize="end"   省略号在结尾 android:ellipsize="start" 省略号在开头 android:ellipsize="middle"   省略号在中间 android:ellipsize="marquee"  跑马灯 最好加一个TextView显示行数的约束,例如:

android TextView Input 实例

<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_heig

android textview xml 属性设置

 android:ems 设置TextView的宽度为N个字符的宽度. android:maxems 设置TextView的宽度为最长为N个字符的宽度.与ems同时使用时覆盖ems选项. android:minems 设置TextView的宽度为最短为N个字符的宽度.与ems同时使用时覆盖ems选项. android:maxLength 限制输入字符数.如设置为5,那么仅可以输入5个汉字/数字/英文字母. android:lines 设置文本的行数,设置两行就显示两行,即使第二行没有数据.

Android TextView 实现文字大小不同和文字颜色不同

效果图如下: 关键代码如下: StringBuffer sb = new StringBuffer(); if(day > 0) { sb.append("<a href=\"1\">"); sb.append(""+day); sb.append("</a>"); sb.append(""+Global.getString(R.string.unit_Day2)); } sb

Android TextView文字空格

 表示全角空格, <string name="aaa">你好      啊</string> http://stackoverflow.com/questions/1587056/android-string-concatenate-how-to-keep-the-spaces-at-the-end-and-or-beginnin 1.Even if you use string formatting sometimes you still need white