android Textview 实现展开收缩功能(字符宽度)(StaticLayout)

来源:互联网 发布:java变量的三要素 编辑:程序博客网 时间:2024/05/20 18:55
public boolean isShink(TextView tv){    String message = tv.getText().toString();    int textviewWidth= Tools.getScreenWidth(MyClassSpaceActivity.this)-(int) AutoLayout.getInstance().designToAvailable(44);    TextPaint tp = new TextPaint();    tp.setTextSize((TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX,AutoLayout.getInstance().designToAvailable(32),new DisplayMetrics())));
    //tp.setTextSize(tv.getTextSize());    
    StaticLayout myStaticLayout = new StaticLayout(message, tp, textviewWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);    return myStaticLayout.getLineCount()>2?true:false;}
//示例代码
 helper.setOnClickListener(R.id.ll_shrink, new View.OnClickListener() {        @Override        public void onClick(View v) {            if (((TextView) helper.getView(R.id.tv_shrink)).getText().toString().equals("收缩")) {                ((TextView) helper.getView(R.id.tv_contents)).setMaxLines(1);                ((TextView) helper.getView(R.id.tv_contents)).setEllipsize(TextUtils.TruncateAt.valueOf("END"));                helper.setText(R.id.tv_shrink, "展开");            } else {                ((TextView) helper.getView(R.id.tv_contents)).setSingleLine(false);                ((TextView) helper.getView(R.id.tv_contents)).setEllipsize(null);                helper.setText(R.id.tv_shrink, "收缩");            }        }    });helper.setVisible(R.id.ll_shrink, isShink((TextView)helper.getView(R.id.ll_shrink)));((TextView)helper.getView(R.id.tv_contents)).setMaxLines(1);((TextView)helper.getView(R.id.tv_contents)).setEllipsize(TextUtils.TruncateAt.valueOf("END"));helper.setText(R.id.tv_shrink, "展开");

0 0