Android TextView限定行数最大值,点击按钮显示所有内容
16lz
2021-01-23
首先效果图
收起
展开
代码
xml布局
<?xml version="1.0" encoding="utf-8"?>
java 代码
package com.wjn.viewlistdemo.activity.textview;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ImageView;import android.widget.TextView;import com.wjn.viewlistdemo.R;import com.wjn.viewlistdemo.utils.StatusBarUtil;public class TextViewMaxActivity extends AppCompatActivity { private TextView textView; private ImageView imageView; private boolean isimageview=false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_textviewmax); //根据状态栏颜色来决定 状态栏背景 用黑色还是白色 true:是否修改状态栏字体颜色 StatusBarUtil.setStatusBarMode(this, false, false, R.color.colorPrimary); initView(); } /** * 初始化各种View * */ private void initView(){ textView=findViewById(R.id.activity_textviewmax_textview); imageView=findViewById(R.id.activity_textviewmax_imageview); textView.setText(StringUtils.string1);// textView.setText(StringUtils.string2); textView.post(new Runnable() { @Override public void run() { boolean b=isTextView(textView); if(b){ imageView.setVisibility(View.VISIBLE); }else{ imageView.setVisibility(View.GONE); } } }); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(!isimageview){ imageView.setBackgroundResource(R.mipmap.downs); textView.setMaxLines(10000); isimageview=true; }else{ imageView.setBackgroundResource(R.mipmap.up); textView.setMaxLines(3); isimageview=false; } } }); } private boolean isTextView(TextView textView){ float m=textView.getPaint().measureText(textView.getText().toString()); float n=3*(textView.getWidth()-textView.getPaddingRight()-textView.getPaddingLeft()); return m>n; }}
由于TextView渲染是需要时间的,如果在获取到TextView并setText之后立马进行判断,会发现此时TextView还没有绘制出来,拿到的属性均为初始值,比如前面函数中调用的getWidth返回为0,这样显然是不对的。所以要在TextView.post方法中执行。
代码链接:https://github.com/wujianning/ViewListDemo
更多相关文章
- android 相对布局例子代码
- Android:获取网页源代码
- Android软键盘之代码改变软键盘状态
- android 用代码设置margin属性,textView加粗
- Android调用百度地图API实现――实时定位代码
- android获取当前Canvas位图代码
- Android 代码获取手机ip地址(个人笔记)
- Android Studio 添加百分比布局库的依赖报错 第一行代码