直播电商平台开发,点击查看更多显示所有内容
实现代码:

mainactivity.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><TextViewandroid:id="@+id/text"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginStart="280dp"android:text="1234567890123456789012345678901234567890"android:background="@color/teal_200"android:textColor="@color/black"android:layout_gravity="center_horizontal" /><ImageViewandroid:visibility="gone"android:layout_marginEnd="10dp"android:id="@+id/show"android:layout_width="15dp"android:layout_height="15dp"android:layout_alignParentEnd="true"android:src="@mipmap/ic_down_arrow" /></RelativeLayout>

MainActivity.java:

package com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;
import android.os.Bundle;
import android.text.Layout;
import android.text.StaticLayout;
import android.text.TextPaint;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 获得控件TextView textView = findViewById(R.id.text);ImageView imageView = findViewById(R.id.show);// 需要显示的文本String text = "1234567890123456789012345678901234567890";// 最大显示行数int maxLine = 2;// 等待textview绘制完成后,执行textView.post(new Runnable() {@Overridepublic void run() {// 获取TextView的画笔对象TextPaint paint = textView.getPaint();// 获取textview的宽度,单位是pxint width = textView.getWidth();// 实例化StaticLayout 传入相应参数StaticLayout staticLayout = new StaticLayout(text, paint, width, Layout.Alignment.ALIGN_NORMAL, 1, 0, false);// 获得文本所需显示得line行数int lineCount = staticLayout.getLineCount();// 如果需要显示的行数大于了规定的最大显示行数if (lineCount > maxLine) {// 显示下箭头的imageviewimageView.setVisibility(View.VISIBLE);// 获取到第大行数最后一个文字的下标int index = staticLayout.getLineStart(maxLine) - 1;// 将最后一行的内容删掉3个,给下箭头imageview留出一点空间String textSub = text.substring(0, index - 3) + "...";textView.setText(textSub);// 获得下箭头imageview的LayoutParamsRelativeLayout.LayoutParams layoutParamsImageView = (RelativeLayout.LayoutParams) imageView.getLayoutParams();// 再实例化一个StaticLayout 传入相应参数StaticLayout staticLayoutHeight = new StaticLayout(textSub, paint, width, Layout.Alignment.ALIGN_NORMAL, 1, 0, false);// 设置下箭头imageview距离分期期数内容的上间距int height = staticLayoutHeight.getHeight();layoutParamsImageView.topMargin = (int) (height - dp2px(MainActivity.this, 12f));// 下箭头imageview的点击事件String finalContentSub = textSub;imageView.setOnClickListener(v -> {// 内容是否已展开if (!textView.isSelected()) {// 内容还未展开// 将所有的内容显示出来textView.setText(text);layoutParamsImageView.topMargin = staticLayout.getHeight();// 标记评价内容已展开textView.setSelected(true);} else {// 将截取后的内容显示出来textView.setText(finalContentSub);layoutParamsImageView.topMargin = (int) (staticLayoutHeight.getHeight() - dp2px(MainActivity.this, 12f));// 标记内容未展开textView.setSelected(false);}});} else {// 没有超过最大显示行数textView.setText(text);// 隐藏下箭头的imageviewimageView.setVisibility(View.GONE);}}});}/*** dp转为px* @param context* @param dipValue* @return*/private float dp2px(Context context, float dipValue) {if (context == null) {return 0;}final float scale = context.getResources().getDisplayMetrics().density;return (float) (dipValue * scale + 0.5f);}
}

就是用了一个【StaticLayout】对象,这个对象专门用来操作textview的,通过它,可以知道需要显示某文本时,所需要的行数,每一行的宽度、下标等。这样,就可以用subString来进行字符串的截取操作,再设置全显示还是部分显示了。
以上就是 直播电商平台开发,点击查看更多显示所有内容,更多内容欢迎关注之后的文章

直播电商平台开发,点击查看更多显示所有内容相关推荐

  1. 直播电商平台开发,点击让窗口抖动动画效果

    直播电商平台开发,点击让窗口抖动动画效果 css代码 .shake {animation: shake 800ms ease-in-out;} @keyframes shake {10%, 90% { ...

  2. 直播电商平台开发,video组件实现视频弹幕功能

    直播电商平台开发,video组件实现视频弹幕功能 发送弹幕 WXML文件代码如下: <!--pages/video/video.wxml--> <video class=" ...

  3. 直播电商平台开发,RecyclerView实现item图片放大缩小

    直播电商平台开发,RecyclerView实现item图片放大缩小 ((ShopDetailsViewHolder) holder).img_list.setOnClickListener(new V ...

  4. 大促在即,拥有亿级流量的电商平台开发了一个订单系统,我们应该如何来预估其并发量?如何根据并发量来合理配置JVM参数呢?

    1. 需求分析 大促在即,拥有亿级流量的电商平台开发了一个订单系统,我们应该如何来预估其并发量?如何根据并发量来合理配置JVM参数呢? 假设,现在有一个场景,一个电商平台,比如京东,需要承担每天上亿的 ...

  5. 【session】Java电商平台开发技能图谱,探秘双十一百万PV

    您将学习 Java电商平台开发技能图谱,探秘双十一百万PV 分享内容 企业级Java开发技能图谱 从宏观到微观,Java到底怎么学 为了支撑双十一,我们对Java程序做了什么 你将认识 热爱分享的常乐 ...

  6. 以太坊+IPFS+WEB 电商平台开发讲解

    以太坊+IPFS+WEB 电商平台开发讲解 作者: AlexTan CSDN: http://blog.csdn.net/alextan_ Github: https://github.com/Ale ...

  7. 常用的直播电商平台有哪些?哪个比较好?

    如今正是一个万物做直播的时代.电商平台纷纷开展直播带货,就连短视频平台也不能逃过直播带货的诱惑,纷纷加入电商直播带货.那么我们常见的直播电商平台排名如何?欢拓云直播小编带大家来看看吧. 第一梯队的电商 ...

  8. 某电商平台开发记要——客服系统

    假如网站需要提供客服功能,如果只是简单的聊天咨询可以考虑营销QQ.百度商桥等(目前大部分网站采用此方式,包括一些知名行业电商):如果需要更精细化的管理,比如客服人员安排.各项数据统计汇总,那么需要对接 ...

  9. 从0到1构建一个电商平台 – 开发篇(转)

    2019独角兽企业重金招聘Python工程师标准>>> 文章来自 在外企和互联网碰撞的猴子 的微信公共账号.是我们跨境电商项目的架构师写的.我们项目的每个点读提到了,方便记录查找,我 ...

最新文章

  1. 慢 SQL 诊断优化套路包,套路用的对,速度升百倍
  2. Python自动化开发学习22-Django下(Form)
  3. 农村房屋能抵押做贷款吗?
  4. 运用Zabbix实现内网服务器状态及局域网状况监控(2) —— 环境配置
  5. C# 淘宝商品微信返利助手开发-(六)返利助手开发(4)如何通过淘口令解析的出来的地址获得返利信息
  6. 漂亮的不太像手机!三星Galaxy S11最新渲染图曝光
  7. 自回归AR模型、移动平均MA模型、自回归移动平均ARMA模型
  8. pytorch中lstm用法详解(二)
  9. 计算机数学基础试卷及答案,2012计算机数学基础试题及答案.pdf
  10. android 百度输入法表情,百度输入法安卓8.6版本发布,AI输入法成为最懂你的“斗图神器”...
  11. access日期如何增加年数_ACCESS 时间日期操作大全
  12. Java/Spring/SpringBoot利用itextpdf将JPG/PNG/TIF等输出为PDF(解决TIF多页合并问题)
  13. 招聘后台投递设置联动按钮迭代开发总结
  14. 2018年全球十大突破性技术
  15. 网页设计配色应用实例之黄色系
  16. 作业 20180925-4 单元测试,结对
  17. 玩客云 虚拟服务器设置,玩客云刷 Linux 系统后遇到的问题和设置固定 IP
  18. 新版teamtalk部署流程
  19. 什么是基类,什么是派生类
  20. cassandra日常维护之nodetool repair

热门文章

  1. 名词解释第二十九讲:搬砖
  2. Android锁屏勒索病毒分析(1)BWM在线
  3. 工信部—高级软件开发工程师认证
  4. keil5写入程序时显示Error.Flash Download failed -‘CortexM4’
  5. 五年磨一剑,QUI框架V3.2完美推出
  6. 大连哪里可以学python_大连Python编程-全套系统班
  7. 如何搭建FAQ文档?只需四步
  8. 移动跨平台技术方案总结
  9. Yeelink:将复杂的传感器以极简的方式组到同一个网络内
  10. 网络编程(四) ———— UDP首部格式