计算textview在屏幕上占多宽
最近做一个手机阅读器的项目,其中遇到一个问题就是要计算textview中显示书籍简介的文字在屏幕上占据的有多少来确定是否显示(显示更多的按钮),点击显示更多按钮,将书籍简介全部加载出来!附图:
不过像UI设计图上面的这种设计,我没做出来,我是(显示更多)按钮显示在textview控件的下方, 如果要做出来像设计图上的效果,我觉得肯定是要自定义一个textview的,附上布局文件:
在附上在activity中的代码:
//这段代码是得到屏幕的宽度
int screenWidth = Integer.parseInt(DeviceInfoUtils.getWidth(this));
//这段代码是得到textview中文字显示的宽度,因为上面的配置文件中paddingLeft='10dip'和paddingRight='10dip'
//DimensionPixelUtil.dip2px(this, 10)这个是将10dip转换为px单位
int font_widht = screenWidth - (2 * (int) DimensionPixelUtil.dip2px(this, 10));
int font_widht = screenWidth - (2 * (int) DimensionPixelUtil.dip2px(this, 10));
TextPaint paint = txt_brief.getPaint();
// 计算textview在屏幕上占多宽
int len = (int) paint.measureText(txt_brief.getText().toString().trim());
// 计算textview在屏幕上占多宽
int len = (int) paint.measureText(txt_brief.getText().toString().trim());
//如果textview显示少于3行 则隐藏 显示更多按钮
if (len <= 3 * font_widht) {
txt_brief.post(new Runnable() {
@Override
public void run() {
btn_load_more.setVisibility(View.GONE);
}
});
}
if (len <= 3 * font_widht) {
txt_brief.post(new Runnable() {
@Override
public void run() {
btn_load_more.setVisibility(View.GONE);
}
});
}