android使用Textview实现伸缩效果

android使用Textview实现伸缩效果,第1张

概述android开发过程中,经常遇到Textview展示不完全的情况。遇到此情况,通常的处理是:

androID开发过程中,经常遇到TextvIEw展示不完全的情况。

遇到此情况,通常的处理是:

方案一、TextvIEw添加androID:ellipsize属性,让展示不完的部分使用省略号代替。
方案二、TextvIEw采用走马灯效果,使其滚动展示全部文本内容。

对于方案一,如果想查看被省略后的内容,如何实现?微信的评论列表,豌豆荚视频详情介绍都有类似使用场景。
下面来看下Demo例子的收起效果,文本内容没有展示完全,使用省略号代替,提示“更多”和向下箭头标识,截图如下:

当点击“更多”和向下箭头时,被省略的内容全部展示出来,提示“更多”和向上收起标识箭头,截图如下:


对于以上效果,实现思路如下:

1、设置TextvIEw默认展示固定行,比如3行,内容展示不完全,在TextvIEw尾部使用省略号代替。

xml文件内容为:

<relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"  xmlns:tools="http://schemas.androID.com/tools"  androID:layout_wIDth="fill_parent"  androID:layout_height="fill_parent"  tools:context=".MainActivity" >   <!-- 显示文本 -->  <TextVIEw   androID:ID="@+ID/text_content"   androID:layout_wIDth="fill_parent"   androID:layout_height="wrap_content"   androID:ellipsize="end"   androID:maxlines="3"   androID:singleline="false" />   <!-- 更多和箭头 -->  <relativeLayout   androID:ID="@+ID/show_more"   androID:layout_below="@ID/text_content"   androID:layout_alignParentRight="true"   androID:layout_wIDth="wrap_content"   androID:layout_height="wrap_content"   androID:layout_margintop="3dip"   >    <TextVIEw    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:layout_alignParentRight="true"    androID:textSize="13sp"    androID:textcolor="#999"    androID:layout_marginRight="34dip"    androID:text="更多" />     <ImageVIEw    androID:ID="@+ID/spread"    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:layout_alignParentRight="true"    androID:background="@drawable/ic_details_more" />    <ImageVIEw    androID:ID="@+ID/shrink_up"    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:layout_alignParentRight="true"    androID:background="@drawable/ic_shrink_up"    androID:visibility="gone" />  </relativeLayout> </relativeLayout> 

2、点击“更多”和向下箭头时,通过TextvIEw的setMaxlines()方法改变TextvIEw的最大行数。即可实现上述效果。

Java代码为:

package com.example.testdemo; import androID.app.Activity; import androID.os.Bundle; import androID.vIEw.VIEw; import androID.vIEw.VIEw.OnClickListener; import androID.Widget.ImageVIEw; import androID.Widget.relativeLayout; import androID.Widget.TextVIEw;  public class MainActivity extends Activity implements OnClickListener {  private static final int VIDEO_CONTENT_DESC_MAX_liNE = 3;// 默认展示最大行数3行 private static final int SHOW_CONTENT_NONE_STATE = 0;// 扩充 private static final int SHRINK_UP_STATE = 1;// 收起状态 private static final int SPREAD_STATE = 2;// 展开状态 private static int mState = SHRINK_UP_STATE;//默认收起状态  private TextVIEw mContentText;// 展示文本内容 private relativeLayout mShowMore;// 展示更多 private ImageVIEw mImageSpread;// 展开 private ImageVIEw mImageShrinkUp;// 收起  @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main);  initVIEw(); initData(); }  private voID initVIEw() { mContentText = (TextVIEw) findVIEwByID(R.ID.text_content); mShowMore = (relativeLayout) findVIEwByID(R.ID.show_more); mImageSpread = (ImageVIEw) findVIEwByID(R.ID.spread); mImageShrinkUp = (ImageVIEw) findVIEwByID(R.ID.shrink_up); mShowMore.setonClickListener(this);  }  private voID initData() { mContentText.setText(R.string.txt_info); }  @OverrIDe public voID onClick(VIEw v) { // Todo auto-generated method stub switch (v.getID()) { case R.ID.show_more: { if (mState == SPREAD_STATE) { mContentText.setMaxlines(VIDEO_CONTENT_DESC_MAX_liNE); mContentText.requestLayout(); mImageShrinkUp.setVisibility(VIEw.GONE); mImageSpread.setVisibility(VIEw.VISIBLE); mState = SHRINK_UP_STATE; } else if (mState == SHRINK_UP_STATE) { mContentText.setMaxlines(Integer.MAX_VALUE); mContentText.requestLayout(); mImageShrinkUp.setVisibility(VIEw.VISIBLE); mImageSpread.setVisibility(VIEw.GONE); mState = SPREAD_STATE; } break; } default: { break; } } }  } 

下面为Demo示例下载链接,Textview伸缩

TextvIEw的伸缩就探讨到这里,有问题,大家可以留言。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的android使用Textview实现伸缩效果全部内容,希望文章能够帮你解决android使用Textview实现伸缩效果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1143623.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存