//随记。关于存在换行符 \n 的文本限制 行数(在设置内容之前就知道有几行)收起展开是否需要显示 小记
2017-01-05 17:02
796 查看
本篇 只是为了解决 在设置内容之前就知道有几行)收起展开是否需要显示
/**
* 将dip或dp值转换为px值,保证尺寸大小不变
*
* @param dipValue
* @param scale (DisplayMetrics类中属性density)
* @return
*/
public static int dip2px(Context context, float dipValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dipValue * scale + 0.5f);
}
//把字符串以\n分为单独的小块
String[] spit = str.split("\\n");
int lines = 0;
for (String str1 : spit) {
float length = getTextViewLength(tv ,str1);
//显示总长度除以textview 的一行 宽度 取余 +1 最后得到行数
lines += (length / (DisplayUtil.getScreenWidth(context) - (DisplayUtil.dip2px(context, 30))) + 1);
}
if (lines > 3 ) {
//大于三行,设置maxlines
tv.setMaxLines(3);
}
//计算string 字符串在tv上显示总长度
public static float getTextViewLength(TextView textView, String text) {
TextPaint paint = textView.getPaint();
// 得到使用该paint写上text的时候,像素为多少
float textLength = paint.measureText(text);
return textLength;
}
/**
* 将dip或dp值转换为px值,保证尺寸大小不变
*
* @param dipValue
* @param scale (DisplayMetrics类中属性density)
* @return
*/
public static int dip2px(Context context, float dipValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dipValue * scale + 0.5f);
}
//把字符串以\n分为单独的小块
String[] spit = str.split("\\n");
int lines = 0;
for (String str1 : spit) {
float length = getTextViewLength(tv ,str1);
//显示总长度除以textview 的一行 宽度 取余 +1 最后得到行数
lines += (length / (DisplayUtil.getScreenWidth(context) - (DisplayUtil.dip2px(context, 30))) + 1);
}
if (lines > 3 ) {
//大于三行,设置maxlines
tv.setMaxLines(3);
}
//计算string 字符串在tv上显示总长度
public static float getTextViewLength(TextView textView, String text) {
TextPaint paint = textView.getPaint();
// 得到使用该paint写上text的时候,像素为多少
float textLength = paint.measureText(text);
return textLength;
}
相关文章推荐
- 设置maxLines=2,ellipseSize=end,判断文本内容是否超出,显示省略号
- 关于安卓alertdialog你能用到的都在这里了(进出动画,显示位置,背景,设置内容,是否可以点击其他地方消失,屏幕不变暗)
- 如何实现js展开收起(折叠)效果呢?例如:一段内容过长了,我限制他显示为20个字内,但是超出了20的就先用省略号代替,然后后面添加一个展开,点击展开后就显示所有的内容,这时候展开按钮就变成了 折叠按钮
- QLabel嵌入html设置文本内容显示
- oracle 11g GRID 中 关于 OLR 需要知道的一些内容
- 根据String以及textView所设定的字体大小来计算所需要行数,实现展开和收起的效果。
- 关于datagridview自动增加行高度和显示全部内容的设置
- 在看官方的例子时候由一个grid实例,在每一行之前有个加号,展开可以显示内容,在实际应用中还是非常有用的,照搬例子的代码,发现老是提示对象不存在,查阅资料后发现是没有加载插件,这里和大家分享下Ext.grid.RowExpander插件的使用,
- 使用ImageView时使用src参数设置显示内容时需要设置scaleType参数
- VC设置静态文本控件的显示字体和显示内容
- android文本限制输入行数,多余部分显示省略号
- VC设置静态文本控件的显示字体和显示内容
- 本来从动态壁纸预览页面设置一个动态壁纸回到桌面便可以看到桌面动态壁纸,可以观察得到自己的动态壁纸是否设置成功了(必须知道设置是否成功的结构,因为还有一些操作需要完成)! 但是现在是要在自己的应用中进入
- 在Symbian中显示一段文本内容(需要有滚动支持)- -
- 关于datagridview自动增加行高度和显示全部内容的设置
- 关于VS2008 中添加成员变量提示 此网站的某个加载项运行失败 请检查“Internet选项”中的安全设置是否存在潜在冲突 问题解决办法
- 通过ChekBox设置EditText内容是否呈现密码显示
- 关于环境变量设置是否需要重启的问题
- Android 随意设置ListView标题,可实现每隔几行显示特定的内容 避免复用带来的显示错乱
- 关于如何显示 html 格式的文本内容