Android仿闲鱼发布弹簧动画

news/2024/12/17 4:36:50/
Android仿闲鱼发布弹簧动画

仿闲鱼发布的弹簧动画显示弹框,效果还不错

一、思路:

用SpringAnimation动画

二、效果图:

在这里插入图片描述
看视频更直观点:

Android开发案例分享仿闲鱼发布弹簧动画

三、关键代码:
public class MoodPublishSelectDialog {private Context mContext;private AlertDialog dialog;private ConstraintLayout clMain;private DrawableCenterTextView mLlMoodSelectText;private DrawableCenterTextView mLlMoodSelectPhoto;private DrawableCenterTextView mLlMoodSelectVideo;private ImageView mIvMoodSelectClose;public MoodPublishSelectDialog(Context mContext) {this.mContext = mContext;dialog = new AlertDialog.Builder(mContext, R.style.mydialog).setCancelable(false).create();dialog.show();final Window window = dialog.getWindow();window.setContentView(R.layout.layout_mood_publish_select);window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);clMain = window.findViewById(R.id.cl_publish_select);mLlMoodSelectText = window.findViewById(R.id.dctv_mood_select_text);mLlMoodSelectPhoto = window.findViewById(R.id.dctv_mood_select_photo);mLlMoodSelectVideo = window.findViewById(R.id.dctv_mood_select_video);mIvMoodSelectClose = window.findViewById(R.id.iv_mood_select_close);setShapeRoundAndEdge(clMain, 0,0, mContext.getResources().getColor(R.color.white),new float[]{dp2px(mContext,12),dp2px(mContext,12),dp2px(mContext,12),dp2px(mContext,12),0,0,0,0});springAnim(mLlMoodSelectText, 3000f);springAnim(mLlMoodSelectPhoto, 3800f);springAnim(mLlMoodSelectVideo, 4600f);mIvMoodSelectClose.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dialog.dismiss();}});}public static void setShapeRoundAndEdge(View view, int lineWide, int lineColor, int solidColor, float[] corner){GradientDrawable gradientDrawable = new GradientDrawable();if(lineWide != 0 && lineColor != 0){gradientDrawable.setStroke(lineWide,lineColor);}if(solidColor != 0){gradientDrawable.setColor(solidColor);}gradientDrawable.setCornerRadii(corner);view.setBackground(gradientDrawable);}public static int dp2px(Context context, float dpValue) {final float scale = context.getResources().getDisplayMetrics().density;return (int) (dpValue * scale + 0.5f);}/*** @param view* @param translationY desc:弹簧动画,带透明度效果*                     create by cong on 2018/4/3 10:39*/public static void springAnim(final View view, float translationY) {if (view != null) {view.setTranslationY(translationY);view.setAlpha(0f);final SpringAnimation leftLogoAnimY = new SpringAnimation(view, SpringAnimation.TRANSLATION_Y, 0);leftLogoAnimY.getSpring().setStiffness(SpringForce.STIFFNESS_VERY_LOW);leftLogoAnimY.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_LOW_BOUNCY);leftLogoAnimY.setStartVelocity(-2000);
四、项目demo源码结构图:

在这里插入图片描述
有问题或者需要完整源码demo的私信我,我每天都看私信的


http://www.ppmy.cn/news/1555770.html

相关文章

OpenCV--图像查找

OpenCV--图像查找 代码和笔记 代码和笔记 import cv2 import numpy as np""" 图像查找--特征匹配的应用,通过特征匹配和单应性矩阵 单应性变换:描述物体在世界坐标系(原图)和像素坐标系(对比图&#x…

手机膜介绍

因为自己开店的原因,现在每天都在对不同的货进行对比,一直在发库存,库存的文章基本也都发没了,所以开始分享开店过程中遇到的事,来给大家介绍一下手机膜。 手机钢化膜、水凝膜、软膜和UV膜是四种常见的手机屏幕保护膜…

Docker-Dockerfile、registry

Dockerfile 一、概述 1、commit的局限 很容易制作简单的镜像,但碰到复杂的情况就十分不方便,例如碰到下面的情况: 需要设置默认的启动命令需要设置环境变量需要指定镜像开放某些特定的端口 2、Dockerfile是什么 Dockerfile是一种更强大的镜…

设置HP条UI

概述 设置常见的生命值条, 实现过程 设置UI/image作为形状 设置UI/Image作为背景 设置UI/image(healthfill)作为填充图片,层数低于背景 设置heathfill的imagetype为filled fillmethod为horizontal [SerializeField] private Im…

Artec Leo与Ray打造工厂数字孪生,提升生产线加工效率【沪敖3D】

挑战:勘测一条漏水的陈旧豌豆生产线,以便在该位置上安装全新改良系统,能提高新鲜农产品的利用比例 解决方案:Artec Leo、Artec Ray、Artec Studio、SOLIDWORKS(带Mesh2Surface插件) 效果:利用…

2023蓝桥杯题解 仅C、D

2023蓝桥杯题解 洛谷2023蓝桥杯C题 洛谷2023蓝桥杯D题 C题 [蓝桥杯 2023 省 A] 平方差 题目描述 给定 L , R L,R L,R,问 L ≤ x ≤ R L \leq x \leq R L≤x≤R 中有多少个数 x x x 满足存在整数 y , z y,z y,z 使得 x y 2 − z 2 xy^2-z^2 xy2−z2。 输入…

Guava库 学习入门--概览与入门

Guava库的介绍 Guava库是由Google开发的Java开源库,它的主要目的是简化常见的编程任务,提供高效的数据处理方法。Guava库中的功能覆盖了从集合操作、缓存、函数式编程、并发编程以及其他诸多实用的工具类。 Guava的安装与依赖配置 Guava库可以通过Mav…

shell编程入门之提取字符并设置rtc时间

awk用法 awk是一款文本处理工具,通常在Unix和Linux操作系统中使用,用于以行为单位对文本进行处理和操作。它可以读取输入文本,对其进行处理,生成报表、统计信息等,并将结果输出到标准输出设备中。 它主要有以下特点&…