跑马灯显示

android:ellipsize="marquee"
android:singleLine="true"
paomad.setSelected(true);

使用RelativeLayout可以使用图标点击旋转,展开textview或收缩textview

<RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginLeft="15dp"android:layout_marginRight="6dp"android:layout_marginTop="7dp"android:layout_marginBottom="7dp"android:gravity="center_vertical"><TextViewandroid:id="@+id/onete"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentStart="true"android:layout_centerVertical="true"android:text="@string/wgms"android:textColor="@color/numtext"android:textSize="15dp" /><TextViewandroid:id="@+id/wgmiaostext"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="80dp"android:ellipsize="end"android:lineSpacingExtra="4dp"android:lines="2"android:text="申报过期申报报过期申报过期申过期申报过期申报过期申报报报报报过期申报过期"android:textColor="@color/hometextc"android:textSize="15dp" /><ImageViewandroid:id="@+id/more_image"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentEnd="true"android:layout_alignParentBottom="true"android:src="@mipmap/xj_03"/></RelativeLayout>

Java代码如下

private boolean ifupdown=true;
@OnClick({R.id.backligxwbdata,R.id.more_image})
public void onClick(View view) {switch (view.getId()) {case R.id.backligxwbdata:onBackPressed();break;case R.id.more_image:if (ifupdown){Animation anim =new RotateAnimation(0f, 180f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);anim.setFillAfter(true); // 设置保持动画最后的状态anim.setDuration(500); // 设置动画时间anim.setInterpolator(new AccelerateInterpolator()); // 设置插入器more_image.startAnimation(anim);//图标旋转向上或向下ifupdown = !ifupdown;double d = (double) weiguidesc.length() / 18;//文本长度除以每行字符长度int  okcprogress = (int) (Math.floor(d))+1;//除数取整,也就是行数Log.i("lgq","lllll===-"+weiguidesc.length()+"......."+okcprogress);wgmiaostext.setLines(okcprogress);//展开全部}else {Animation anim =new RotateAnimation(180f, 0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);anim.setFillAfter(true); // 设置保持动画最后的状态anim.setDuration(500); // 设置动画时间anim.setInterpolator(new AccelerateInterpolator()); // 设置插入器more_image.startAnimation(anim);wgmiaostext.setLines(2);//收缩为原始两行               ifupdown = !ifupdown;}break;}
}

实现展开收起方法2:

(1)资源

<color name="color_8290AF">#8290AF</color>
<color name="color_232323">#232323</color>

attrs.xml

<?xml version="1.0" encoding="utf-8"?>
<resources><declare-styleable name="ExpandTextView"><attr name="showLines" format="integer"/></declare-styleable></resources>

layout_expand_text.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/contentText"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="@color/color_232323"android:textSize="14sp"android:text=""/><TextViewandroid:id="@+id/textState"android:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="14sp"android:textColor="@color/color_8290AF"android:paddingTop="5dp"android:paddingBottom="5dp"android:text=""/></LinearLayout>

(2)自定义textview

public class ExpandTextView extends LinearLayout {public static final int DEFAULT_MAX_LINES = 3;//最大的行数private TextView contentText;private TextView textState;private int showLines;private ExpandStatusListener expandStatusListener;private boolean isExpand;public ExpandTextView(Context context) {super(context);initView();}public ExpandTextView(Context context, AttributeSet attrs) {super(context, attrs);initAttrs(attrs);initView();}public ExpandTextView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);initAttrs(attrs);initView();}private void initView() {setOrientation(LinearLayout.VERTICAL);LayoutInflater.from(getContext()).inflate(R.layout.layout_expand_text, this);contentText = (TextView) findViewById(R.id.contentText);contentText.setLineSpacing(8,1);//行间距contentText.setLetterSpacing(0.5f);          //字间距if(showLines > 0){contentText.setMaxLines(showLines);}textState = (TextView) findViewById(R.id.textState);textState.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {String textStr = textState.getText().toString().trim();if("全文".equals(textStr)){contentText.setMaxLines(Integer.MAX_VALUE);textState.setText("收起");setExpand(true);}else{contentText.setMaxLines(showLines);textState.setText("全文");setExpand(false);}//通知外部状态已变更if(expandStatusListener != null){expandStatusListener.statusChange(isExpand());}}});}private void initAttrs(AttributeSet attrs) {TypedArray typedArray = getContext().getTheme().obtainStyledAttributes(attrs, R.styleable.ExpandTextView, 0, 0);try {showLines = typedArray.getInt(R.styleable.ExpandTextView_showLines, DEFAULT_MAX_LINES);}finally {typedArray.recycle();}}public void setText(final CharSequence content){contentText.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {@Overridepublic boolean onPreDraw() {// 避免重复监听contentText.getViewTreeObserver().removeOnPreDrawListener(this);int linCount = contentText.getLineCount();if(linCount > showLines){if(isExpand){contentText.setMaxLines(Integer.MAX_VALUE);textState.setText("收起");}else{contentText.setMaxLines(showLines);textState.setText("全文");}textState.setVisibility(View.VISIBLE);}else{textState.setVisibility(View.GONE);}return true;}});contentText.setText(content);}public void setExpand(boolean isExpand){this.isExpand = isExpand;}public boolean isExpand(){return this.isExpand;}public void setExpandStatusListener(ExpandStatusListener listener){this.expandStatusListener = listener;}public static interface ExpandStatusListener{void statusChange(boolean isExpand);}
}

调用:

<com.example.my35.ExpandTextViewandroid:id="@+id/expand_textView"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:ellipsize="end"android:lineSpacingExtra="3dp"android:maxLines="5"android:textSize="16sp"app:layout_constraintRight_toRightOf="parent"/>
ExpandTextView textView1 =findViewById(R.id.expand_textView);
textView1.setText("分为非我仿佛威风威风为任务范围范围分为非危房危房危房威锋网分为非仍无法" +"为非危房危房危房威锋网分为非仍无法危房违法未范围范围分为非危房危房任务分为分为分为我分为非我仿佛威风威" +"风为任务范围范围分为非危房危房危房威锋网分为非仍无法危房违法未范围范围分为非危房危房任务分为分为分为我");

单行省略

android:singleLine="true"
android:ellipsize="end"

多行省略

android:maxLines="3"
android:ellipsize="end"

行距

android:lineSpacingExtra="6dp"

contentText.setLineSpacing(8,1);//行间距
contentText.setLetterSpacing(0.5f);          //字间距

textview点击展开全部或收起,内容过长显示省略号,设置行间距,字间距,跑马灯显示相关推荐

  1. Android基础篇 TextView 设置行间距字间距

    一.行间距 TextView 设置行间距可以通过设置TextView属性的 android:lineSpacingExtra 或 android:lineSpacingMultiplier 来达到效果 ...

  2. Android TextView内容过长加省略号,点击显示全部内容

    2019独角兽企业重金招聘Python工程师标准>>> 在Android TextView中有个内容过长加省略号的属性,即ellipsize,用法如下: 在xml中: android ...

  3. Android中TextView内容过长加省略号,设置超出6个字就用省略号表示

    设置超出6个字就用省略号表示: <TextView android:id="@+id/wholesale_carrier" android:layout_width=&quo ...

  4. 点击展开阅读全文--收起

    在项目中直接可以拿去用 <template><!-- 点击展开阅读全文 --><view class="xqnrbox" ><rich-t ...

  5. Android TextView设置多样式文本,跑马灯以及霓虹灯效果

    1.设置TextView字体颜色 1)使用Html标签方式设置 代码如下: tvTest1.setText(Html.fromHtml("电影<font color = blue> ...

  6. 安卓超过两行就加省略号_Android TextView内容过长加省略号,点击显示全部内容...

    一.文字滚动 文字左右滚动三个属性: android:singleLine="true" android:ellipsize="marquee" android ...

  7. div内容过长自动省略号

    <div class="tits" style="width:900px;">${item.note}</div>        //自 ...

  8. echart横轴文字显示省略号_Echarts X轴内容过长自动隐藏,鼠标移动上去显示全部名称方法...

    最近公司做项目,使用echarts做开发,碰到一些数据的名称很长导致图例展示的效果不是很好,自己写了一个方法,当X轴内容过长时自动隐藏,鼠标移动上去显示全部名称 样例: 图二是鼠标移动到名称显示的,怎 ...

  9. Android移动开发之【通往安卓的神奇之旅】TextView和ImageView 实现跑马灯效果

    文章目录 1 textview 1.1 介绍属性(全) 1.2 自带跑马灯代码 2 imageview 1 textview 1.1 介绍属性(全) android:autoLink设置是否当文本为U ...

最新文章

  1. C#用DesignSurface实现一个简单的窗体设计器
  2. YOLO在升级 | PP-YOLO v2开源致敬YOLOV4携带Tricks又准又快地归来(附论文与源码)...
  3. https是如何保证数据传输的安全
  4. python中__init__后面加特殊符号_详解Python中的__new__、__init__、__call__三个特殊方法...
  5. OpenSession与getCurrentSession的区别
  6. __slots__的作用
  7. Java 多线程之单例设计模式
  8. 《四世同堂》金句摘抄(十八)
  9. 生产者消费者案例java代码
  10. linux nohup后台执行管道操作
  11. linux下的malloc申请的是虚拟还是物理的,关于malloc申请内存
  12. 云计算之openstack(N版)neutron网络服务最佳实践
  13. Jersey实现Restful服务
  14. oracle的jde系统,国内Oracle JDE用户的福音,首创AWS JDE Dynamic Adapter集成中间件
  15. 使用octotree 出现Error: Connection error octotree解决办法
  16. 华硕服务器 u盘安装系统,华硕u盘装系统图解教程
  17. Linux服务端rpm包安装Jenkins
  18. Echarts绘制各种数据可视化图表案例(效果+代码)
  19. 头像加国旗引发的小思考
  20. MacBook 安装固态硬盘

热门文章

  1. 前端学习(2411):name属性的作用
  2. 前端学习(2346):global全局样式布局
  3. 前端学习(1987)vue之电商管理系统电商系统之通过路由加载商品列表
  4. 前端学习(1421):ajax请求参数的格式类型
  5. 第一百三十三期:MySQL锁会不会,你就差看一看咯
  6. 第五十八期:从0到1 手把手教你建一个区块链
  7. 27.用zxing生成二维码
  8. 机器学习算法总结--SVM
  9. mysql执行过程五步_简单五步教你搭建MySQL主从复制
  10. 蓄电池单格电压多少伏_蓄电池充电规范手册