关于listview 一个单行的item能显示字数的问题

string length 的话,“你好”是2, “hi”也是2,但是显示的长度明显是中文的比较长一些。。

用字节来看的话,“你好”在UTF-8编码下是3个字节,也就是6,“hi”,一个字母1一个字节,就是“2”


你好

hihi  这个长度比较接近。。。


所以要用字节来控制显示的长度。。。


下面代码中mTitle为要处理的字符串


		byte[] titleByte = mTitle.getBytes();
		int byteCount = titleByte.length;
		Log.d(TAG, "title " + mTitle);
		Log.d(TAG, "byte count" + byteCount);


		if (byteCount > 8 * 3) {
			String title = mTitle.substring(0, 23);
			titleTextView.setText(title + "...");
		} else {
			titleTextView.setText(mTitle);
		}


哎呀呀呀 解决不了问题的!!!


这个才是靠谱的!!!

发现android的layout xml还是很强大的!!!

使用TextView的时候,需要长度过长自动显示省略号,android里有原生的支持,定义如下: 
复制代码 代码如下:


<TextView ... 
android:ellipsize="end" 
android:singleLine="true"/> 



width属性必须要设才有作用:

<TextView android:layout_width="wrap_content" 

android:layout_height="wrap_content"

android:id="@+id/PopNameList"
android:singleLine="true"
android:ellipsize="end"

android:textStyle="bold" 
android:textSize="15sp"
android:width="120dp" />

效果为如图android中Textview如何限制在一行显示且多余字符自动截断



你可能感兴趣的:(关于listview 一个单行的item能显示字数的问题)