Android开发实现的文本折叠点击展开功能示例

本文实例讲述了Android开发实现的文本折叠点击展开功能。分享给大家供大家参考,具体如下:

信息栏,景点介绍,购物信息,进场会使用到文本折叠的方法

实现非常简单,这里就不哆嗦了

效果如下:

Demo:https://github.com/LonglyWolf/NavigationSystemHLJU

这里用到了三方类库,在app/gradle添加依赖如下:

//文本过长 点击展开全部
implementation 'com.ms-square:expandableTextView:0.1.4'

上面的实例是通过adapter就和listView实现的,这里就不搞那么复杂,直接看折叠文本的方法实现:

首先是主活动:

@Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // sample code snippet to set the text content on the ExpandableTextView
    ExpandableTextView expTv1 = (ExpandableTextView) findViewById(R.id.expand_text_view);
    // IMPORTANT - call setText on the ExpandableTextView to set the text content to display
    expTv1.setText("qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq");
  }

重点在于布局文件的设置:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/container"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical"
  tools:context=".MainActivity">
  <com.ms.square.android.expandabletextview.ExpandableTextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:expandableTextView="http://schemas.android.com/apk/res-auto"
    android:id="@+id/expand_text_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    expandableTextView:maxCollapsedLines="4"
    expandableTextView:animDuration="200">
    <TextView
      android:id="@id/expandable_text"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_marginLeft="10dp"
      android:layout_marginRight="10dp"
      android:textSize="16sp"
      android:textColor="#666666" />
    <ImageButton
      android:id="@id/expand_collapse"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:padding="16dp"
      android:layout_gravity="right|bottom"
      android:background="@android:color/transparent"/>
  </com.ms.square.android.expandabletextview.ExpandableTextView>
</LinearLayout>

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》、《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android数据库操作技巧总结》及《Android资源操作技巧汇总》

希望本文所述对大家Android程序设计有所帮助。

(0)

相关推荐

  • Android使用Service实现IPC通信的2种方式

    借助AIDL实现IPC通信 一.代码实操---与远端进程的Service绑定 上面的代码都是在当前进程内跟Service通信,现在我们来实现一下,不同进程内Service如何绑定. AIDL:Android Interface Definition Language,即Android接口定义语言. Service跨进程传递数据需要借助aidl,主要步骤是这样的: 编写aidl文件,AS自动生成的java类实现IPC通信的代理 继承自己的aidl类,实现里面的方法 在onBind()中返回我们的实

  • Android实现合并生成分享图片功能

    有时候分享功能都是很需要分享一个当前屏幕的界面的截图因,以前做校内APP的时候用到过,拿出来分享分享, 用以前写过的自定义课表软件. Android 自定义View课程表表格 看到的是图片只显示到11节处,下面的没有显示到 所以用到的 ScrollView 因此截图节截取ScrollView View的图片 一.首先计算出整个ScrollView 的高度宽度生成对应大小的的Bitmap 然后把使用Canvas 将ScrollView 的界面绘制上去 // 获取ScrollView 实际高度 h

  • android 无须root截图方案的实现

    通过反射了截取屏 public class EncoderFeeder { public static Bitmap screenshot() { String surfaceClassName; if (VERSION.SDK_INT <= 17) { surfaceClassName = "android.view.Surface"; } else { surfaceClassName = "android.view.SurfaceControl"; }

  • Android Studio三方引用报错但是项目可以运行的解决方案

    Android Studio第一次启动的Fetching android sdk component information的问题 1)进入刚安装的Android Studio目录下的bin目录.找到idea.properties文件,用文本编辑器打开. 2)在idea.properties文件末尾添加一行: disable.android.first.run=true ,然后保存文件. 3)关闭Android Studio后重新启动,便可进入界面. Android Studio 三方引用报错

  • Android开发之SeekBar基本使用及各种美观样式示例

    本文实例讲述了Android开发之SeekBar基本使用及各种美观样式.分享给大家供大家参考,具体如下: 改变控件透明度只需通过 .setAlpha()方法实现 有多种改变思路: 1.改变图片透明度 2.改变背景透明度地点 setBackground() 等等 这里举个例子: 思路拓展:只要将透明度的动态修改跟手势向结合 就能实现toolbar等洞见在拖动是隐藏 以下是更SeekBar相结合的实现代码 seekbar的position属性设置在 0~255 之间 正好与0~255 的透明度相对应

  • android关于按钮点击效果实现的方法

    1.切换图片法 通过写XML文件切换图片实现点击效果图中 fabu1,fabu2为两张图片,点击显示fabu2不点击显示fabu1  在按钮的background属性下调用该XML文件 2.通过颜色转换实现 在color文件中定义颜色 然后写XML文件调用 图中base,huise为定义的两种颜色  改变颜色在控件的color属性下调用此XML文件 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下

  • android和服务器的URLEncodedUtils乱码编码问题的解决方案

    在android开发中我们常常遇到与到乱码问题,遇到乱码问题首先我们要先检查两端编码格式是否一致! 一般我们提交数据用get 和post方法,这两种方法在上传中有con.setRequestProperty("Charset", "UTF-8"); 和httppost.setEntity(new UrlEncodedFormEntity(数据,"UTF-8"));这两中方式来确定编码方式服务器端有request.setCharacterEncod

  • Android判断json格式将错误信息提交给服务器

    开发中发现, 服务器偶尔会发送错误格式 json 给 Android 客户端, 导致 Android 客户端 json解析失败, 应用异常. 并非服务器有意坑客户端, 而是客户端请求服务器数据时, 除了得到正确 json 数据外, 数据可能还夹杂其它数据. 例如:  thinkPHP 开启  'SHOW_PAGE_TRACE '=> true 时, 正确的 json 后面会夹杂HTML代码, 解决办法: 1. 将 'SHOW_PAGE_TRACE ' =>false   , 设置为false.

  • Android开发之FloatingActionButton悬浮按钮基本使用、字体、颜色用法示例

    本文实例讲述了Android开发之FloatingActionButton悬浮按钮基本使用.字体.颜色用法.分享给大家供大家参考,具体如下: 这里主要讲: FloatingActionsMenu自定义样式以及title调整 FloatingActionButton的基本方法 看一下效果图: 这里使用的是:com.getbase.floatingactionbutton.FloatingActionsMenu 先说下它的配置:在app/build.gradle 添加以下代码依赖: 圆形悬浮按钮 i

  • Android自定义View实现课程表表格

    自己闲下来时间写的一个课表控件,使用的自定义LinearLayout,里面View都是用代码实现的,最终效果如下图,写的可能有问题希望多多指点 创建一个自定义LinearLayout 控件用来装载课程的信息和课程的周数,和节数大概的布局三这样的 根据上面的看来觉得总体布局我分了两个 上面的星期是一个 下面的节数和格子是一个  总体使用Vertical  而单独内部者使用了Horizontal布局  中间使用了两种布局线条 是这样的 /** * 横的分界线 * * @return */ priva

随机推荐