Android Material Design动画 Reveal Effect | 揭示效果
来源:互联网 发布:linux pipe 编辑:程序博客网 时间:2024/06/05 21:16
Material Design动画 Reveal Effect | 揭示效果
核心方法
ViewAnimationUtils.createCircularReveal( View view,//视图将被剪辑到动画圈子 int centerX,//开始动画的起点x坐标(相对于目标view而言) int centerY,//开始动画的起点y坐标(相对于目标view而言) float startRadius,//动画圆的起始半径 float endRadius//动画圆的半径结束 );
效果图代码实现
1.布局
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/btn_revealeffect" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="展开/收缩"/> <ImageView android:id="@+id/view_revealeffect" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/gank" android:visibility="invisible"/> </LinearLayout>
2.逻辑代码
public class PlayRevealEffect extends MvvmBaseActivity<ActivityPlayRevealEffectBinding> implements View.OnClickListener { private boolean isFirst = true;//是否是第一次点击 private Animator animator; private int width;// 屏幕宽度(像素) private int height;// 屏幕高度(像素) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_play_reveal_effect); GetPiexels(); bindingView.btnRevealeffect.setOnClickListener(this); } private void GetPiexels() { DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); width = metric.widthPixels; height = metric.heightPixels; } @Override public void onClick(View v) { if (isFirst) { animator = ViewAnimationUtils.createCircularReveal( bindingView.viewRevealeffect, width / 2, height / 2, 0, height ); isFirst = false; } else { animator = ViewAnimationUtils.createCircularReveal( bindingView.viewRevealeffect, 0, 0, height, 0 ); isFirst = true; } animator.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { if (!isFirst) { bindingView.viewRevealeffect.setVisibility(View.VISIBLE); } } @Override public void onAnimationEnd(Animator animation) { if (isFirst) { bindingView.viewRevealeffect.setVisibility(View.INVISIBLE); } } @Override public void onAnimationCancel(Animator animation) { } @Override public void onAnimationRepeat(Animator animation) { } }); animator.setDuration(500); animator.start(); }}
完整代码点我下载GitHub
Thank you
- 以上仅本人学习中遇到的问题,如有更多意见欢迎随时交流 issues
- email:coderguoy@gmail.com
阅读全文
0 0
- Android Material Design动画 Reveal Effect | 揭示效果
- Material Design - Touch feedback , Reveal effect
- 如何实现Button水波纹效果-Android 5.0 material design Reveal效果
- Android Material Design动画
- Material Design之动画效果
- Material Design动画:涟漪效果
- Material Design动画效果思路
- android动画--Material Design动画
- Android Material Design 动画实现
- Android:Material Design(三) 动画
- Android Material Design 动画实现
- Reveal Effect(揭露效果)
- Android5.X (四) : Material Design-动画效果
- Material Design系列之动画效果
- MaterialDesign-Material Design动画效果(四)
- Android-Material Design详解(动画篇)
- Android Material Design II-自定义动画
- Android Material Design动画(上)
- MongoDB聚合查询
- springboot开发(yml配置和注解解析)
- zend Studio快捷键操作说明
- Java的异常处理
- 职业规划
- Android Material Design动画 Reveal Effect | 揭示效果
- 【动态规划15】hdu3057 Print Article(斜率优化入门)
- facade模式
- DUBBO-ZOOKEEPER-SPRING-MAVEN-TOMCAT集群配置~
- 手机端页面自适应解决方案—rem布局--小记
- Springboot开发(spring+mybatis+druid)
- IO 异常:The Network Adapter could not establish the connection
- Okhttp使用和源码分析三(OkHttp源码分析)
- 两种方式实现Android侧滑菜单