iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android如何实现带动画效果的可点击展开TextView
  • 550
分享到

Android如何实现带动画效果的可点击展开TextView

androidtextview 2023-05-30 23:05:32 550人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关Android如何实现带动画效果的可点击展开TextView,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图: 收起(默认)效果:点击展开后的效果:源码: 布局:<?

这篇文章将为大家详细讲解有关Android如何实现带动画效果的可点击展开TextView,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

效果图:

收起(默认)效果:

Android如何实现带动画效果的可点击展开TextView

点击展开后的效果:

Android如何实现带动画效果的可点击展开TextView

源码

布局:

<?xml version="1.0" encoding="utf-8"?><LinearLayout android:id="@+id/activity_main" xmlns:android="Http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ScrollView  android:id="@+id/sv"  android:layout_width="match_parent"  android:layout_height="match_parent"  >  <LinearLayout   android:layout_width="match_parent"   android:layout_height="match_parent"   android:background="#f6f6f6"   android:orientation="vertical"   android:padding="5dp">   <TextView    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:maxLines="1"    android:text="简介"    android:textColor="#000000"    android:textSize="20sp"/>   <TextView    android:id="@+id/tv_des"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:textColor="#666666"    android:textSize="18sp"/>   <RelativeLayout    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:layout_marginTop="5dp"    android:gravity="center_vertical"    android:orientation="horizontal">    <ImageView     android:id="@+id/iv_des_arrow"     android:layout_width="20dp"     android:layout_height="20dp"     android:layout_alignParentEnd="true"     android:background="@mipmap/arrow_down"/>   </RelativeLayout>  </LinearLayout> </ScrollView></LinearLayout>

功能实现:

package com.cnfol.demo;import android.animation.Animator;import android.animation.ValueAnimator;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.ViewTreeObserver.OnGlobalLayoutListener;import android.widget.ImageView;import android.widget.ScrollView;import android.widget.TextView;public class MainActivity extends Activity implements View.OnClickListener { private TextView tv_des; private ImageView iv_des_arrow; private boolean isExpandDes = false;//是否展开整个描述 private int minHeight = 0; private int maxHeight = 0; private ScrollView scrollView; @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  scrollView = (ScrollView) findViewById(R.id.sv);  tv_des = (TextView) findViewById(R.id.tv_des);  tv_des.setOnClickListener(this);  iv_des_arrow = (ImageView) findViewById(R.id.iv_des_arrow);  iv_des_arrow.setOnClickListener(this);  String s = "中华人民共和国,简称中国,位于亚洲东部,太平洋西岸, 是工人阶级领导的、以工农联盟为基础的人民民主专政的社会主义国家。\n" +    "\n" +    "1949年(己丑年)10月1日成立, 以五星红旗为国旗, 《义勇军进行曲》为国歌, 国徽内容包括国旗、天安门、齿轮和麦稻穗, 首都北京, 省级行政区划为23个省、5个自治区、4个直辖市、2个特别行政区, 是一个以汉族为主体民族,由56个民族构成的统一多民族国家,汉族占总人口的91.51%。\n" +    "\n" +    "新中国成立后随即开展经济恢复与建设,1953年开始三大改造, 到1956年确立了社会主义制度,进入社会主义探索阶段。 文化大革命之后开始改革开放,逐步确立了中国特色社会主义制度。中国陆地面积约960万平方公里,大陆海岸线1.8万多千米,岛屿岸线1.4万多千米,内海和边海的水域面积约470多万平方千米。海域分布有大小岛屿7600多个,其中台湾岛最大,面积35798平方千米。同14国接壤,与8国海上相邻。中国是四大文明古国之一, 有着悠久的历史文化。是世界国土面积第三大的国家,世界第一大人口国家,与英、法、美、俄并为联合国安理会五大常任理事国。\n" +    "\n" +    "中国是世界第二大经济体,世界第一贸易大国,世界第一大外汇储备国, 世界第一大钢铁生产国和世界第一大农业国,世界第一大粮食总产量国以及世界上经济成长最快的国家之一。";  tv_des.setText(s);  tv_des.setMaxLines(3);  tv_des.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {   @Override   public void onGlobalLayout() {    //一般用完之后,立即移除该监听    tv_des.getViewTreeObserver().removeGlobalOnLayoutListener(this);    minHeight = tv_des.getMeasuredHeight();//获取3行时候的高度    tv_des.setMaxLines(Integer.MAX_VALUE);//会全部显示内容    tv_des.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {     @Override     public void onGlobalLayout() {      //一般用完之后,立即移除该监听      tv_des.getViewTreeObserver().removeGlobalOnLayoutListener(this);      maxHeight = tv_des.getMeasuredHeight();//获取总高度      if (minHeight == maxHeight) {       //最大高度和最小高度一样。说明设置的默认显示行数,已经可以把所有数据全部显示       iv_des_arrow.setVisibility(View.GoNE);      }      tv_des.getLayoutParams().height = minHeight;      tv_des.requestLayout();//让tv_des显示为3行的高度     }    });   }  }); } @Override public void onClick(View v) {  switch (v.getId()) {   case R.id.tv_des:   case R.id.iv_des_arrow:    ValueAnimator desAnimator = null;    if (isExpandDes) {     desAnimator = ValueAnimator.ofInt(maxHeight, minHeight);    } else {     desAnimator = ValueAnimator.ofInt(minHeight, maxHeight);    }    desAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {     @Override     public void onAnimationUpdate(ValueAnimator animator) {      int currentHeight = (Integer) animator.getAnimatedValue();      tv_des.getLayoutParams().height = currentHeight;      tv_des.requestLayout();      //只有展开动画的时候才需要内容向上滚动,收缩动画的时候是不需要滚动的      if (!isExpandDes) {       int scrollY = currentHeight - minHeight;       scrollView.scrollBy(0, scrollY);      }     }    });    desAnimator.setDuration(300);    desAnimator.addListener(new DesAnimListener());    desAnimator.start();    break;  } }  class DesAnimListener implements Animator.AnimatorListener {  @Override  public void onAnimationCancel(Animator arg0) {  }  @Override  public void onAnimationEnd(Animator arg0) {   isExpandDes = !isExpandDes;   iv_des_arrow.setBackgroundResource(isExpandDes ? R.mipmap.arrow_up : R.mipmap.arrow_down);  }  @Override  public void onAnimationRepeat(Animator arg0) {  }  @Override  public void onAnimationStart(Animator arg0) {  } }}

关于“Android如何实现带动画效果的可点击展开TextView”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Android如何实现带动画效果的可点击展开TextView

本文链接: https://www.lsjlt.com/news/222302.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android如何实现带动画效果的可点击展开TextView
    这篇文章将为大家详细讲解有关Android如何实现带动画效果的可点击展开TextView,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图: 收起(默认)效果:点击展开后的效果:源码: 布局:<x...
    99+
    2023-05-30
    android textview
  • jQuery实现带展开动画的导航栏效果
    设计和自定义一个带展开动画效果的导航栏,尝试写了一个demo,加上设计和调试差不多写了一天吧。 这里就来讲讲如何从设计->写布局->写样式->写JS代码 完成一个完...
    99+
    2024-04-02
  • Android TextView实现多文本折叠、展开效果
    背景在开发过程中,当我们的需求中包含说说或者评论等内容的展示时,我们都会考虑当内容太多时该如何显示。当内容的字数太多,如果全部展示出来可能会影响体验效果,但是又不能只截取一部分内容进行展示,此时就需要考虑使用多行显示折叠的效果来实现。效果图...
    99+
    2023-05-31
    android textview roi
  • Android列表实现单选点击缩放动画效果
    recycleView单选的时候,一般的处理就是选中的item做个stroke或者字体颜色改变,但要提升用户体验就得加点动画了。也就是点击选中的元素放大,同时之前选中的item缩小,...
    99+
    2024-04-02
  • 小程序实现点击动画效果
    本文实例为大家分享了小程序实现点击动画效果的具体代码,供大家参考,具体内容如下 今天接到一个小程序优化需求,要实现一个点击的动画效果 考虑实现方法,使用css的transition...
    99+
    2024-04-02
  • Android如何实现梯形TextView效果
    小编给大家分享一下Android如何实现梯形TextView效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果图:自定义代码实现逻辑:public ...
    99+
    2023-06-15
  • Android开发手册TextView属性实现效果盘点
    目录前言实践过程如何实现drawable的动画?图文混排前言 前面小空带大家了解了TextView的属性,实践了一些自定义粗细,阴影效果,链接形文字。 但这还仅仅局限在用她本身的能力...
    99+
    2024-04-02
  • Android怎么实现点赞动画效果
    今天小编给大家分享一下Android怎么实现点赞动画效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、前言对接下来功能实...
    99+
    2023-06-29
  • Android列表怎么实现单选点击缩放动画效果
    本篇内容介绍了“Android列表怎么实现单选点击缩放动画效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!recycleView单选的时候...
    99+
    2023-06-20
  • Android Flutter如何实现3D动画效果
    这篇文章主要讲解了“Android Flutter如何实现3D动画效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android Flutter如何实现3D动画效果”吧...
    99+
    2023-06-29
  • 如何通过Jetpack Compose实现双击点赞动画效果
    这篇文章主要介绍如何通过Jetpack Compose实现双击点赞动画效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实现步骤先红色画个爱心Icon(    Ico...
    99+
    2023-06-28
  • Android如何实现直播app送礼物连击动画效果
    这篇文章将为大家详细讲解有关Android如何实现直播app送礼物连击动画效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最近在做公司的直播项目,需要实现一个观看端连击送礼物的控件:直接上代码:publ...
    99+
    2023-05-31
    android
  • 通过JetpackCompose实现双击点赞动画效果
    目录实现步骤先红色画个爱心点击事件加动画完整代码效果图实现步骤 先红色画个爱心 Icon( Icons.Filled.Favorite, "爱心", Modi...
    99+
    2024-04-02
  • 一文搞懂Android RecyclerView点击展开、折叠效果的实现代码
    RecyclerView是什么        RecycleView是Android5.0后谷歌推出的一个用于在有限的窗...
    99+
    2024-04-02
  • css如何实现不可点击样式效果
    这篇“css如何实现不可点击样式效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“css如何实现不可点击样式效果”文章吧。1...
    99+
    2023-07-04
  • CSS3如何实现3D开门动画效果
    这篇文章将为大家详细讲解有关CSS3如何实现3D开门动画效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 这篇文章将为大家详细讲解有关CSS3如何实现3D开门动画效果,...
    99+
    2024-04-02
  • CSS3代码怎么实现点击放大动画效果
    本篇内容主要讲解“CSS3代码怎么实现点击放大动画效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS3代码怎么实现点击放大动画效果”吧!代码如下<!DOCTYPE html...
    99+
    2023-07-04
  • Android中如何设置TextView渐变颜色和方向及动画效果
    这篇文章主要介绍Android中如何设置TextView渐变颜色和方向及动画效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!添加依赖之前仓库发布在 jcenter,但是因为它即将不可用,近期已完成迁移。建议大家使用...
    99+
    2023-06-25
  • android如何实现自动点击
    要实现自动点击,可以使用Android的AccessibilityService服务来实现。AccessibilityService...
    99+
    2023-10-24
    android
  • jQuery如何实现动画效果?
    ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作