android 在使用ViewAnimationUtils.createCircularReveal()无法兼容低版本的情况下,另行实现圆形scale动画...
ViewAnimationUtils.createCircularReveal()的简介:
ViewAnimationUtils.createCircularReveal()是安卓5.0才引入的,快速实现圆形缩放动画的api,效果如下图所示:
如果要在你的程序中使用它,必须要设置最低的 api 版本是 21,往下版本的,在运行程序的时候就会抛出 .createCircularReveal() not found
异常。其源码如下:
1 public static Animator createCircularReveal(View view,int centerX, int centerY, float startRadius, float endRadius) { 2 return new RevealAnimator(view, centerX, centerY, startRadius, endRadius); 3 }
第一个参数view:是你要进行圆形缩放的 view;
第二和第三个参数:分别是开始缩放点的 x 和 y 坐标;
第四和第五:分别是开始的半径和结束的半径。
在兼容低版本下模仿实现上述效果:
实现思路:
1-》实现圆形,使用 xml 自定义背景,实现圆形,再设置到 view ;
2-》使用传统的 scaleX 和 scaleY ,在所要缩放的 view 里同时实现缩放。
shape 代码:
1 <?xml version="1.0" encoding="utf-8"?> 2 <shape 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 android:shape="oval" 5 android:useLevel="false"> 6 <!--oval是 shape的属性之一,意思是 椭圆--> 7 <!--solid 是shape 的孩子之一,作用是实现填充--> 8 <solid android:color="#ff49fdfa"/> 9 <!--size 也是shape 的孩子之一,作用是实现 长宽限制--> 10 <size 11 android:width="300dp" 12 android:height="300dp" /> 13 </shape>
布局代码:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent"> 6 7 <LinearLayout 8 android:id="@+id/linearTestScale" 9 android:orientation="vertical" 10 android:layout_width="10dp" 11 android:background="@drawable/a" 12 android:layout_height="10dp"> 13 14 </LinearLayout> 15 <Button 16 android:id="@+id/btnTestScale" 17 android:text="xxx" 18 android:layout_width="wrap_content" 19 android:layout_height="wrap_content" 20 /> 21 </LinearLayout>
java代码:
1 package com.LGH.ui.activity; 2 3 import android.animation.AnimatorSet; 4 import android.animation.ObjectAnimator; 5 import android.app.Activity; 6 import android.os.Bundle; 7 import android.view.View; 8 import android.view.animation.LinearInterpolator; 9 import android.widget.Button; 10 import android.widget.LinearLayout; 11 12 import io.github.froger.instamaterial.R; 13 14 /** 15 * Created by Administrator on 2015/6/29. 16 */ 17 public class test extends Activity{ 18 19 Button btnTestScale; 20 LinearLayout linearTestScale; 21 22 @Override 23 protected void onCreate(Bundle savedInstanceState) { 24 super.onCreate(savedInstanceState); 25 setContentView(R.layout.test); 26 btnTestScale = (Button) findViewById(R.id.a); 27 linearTestScale = (LinearLayout) findViewById(R.id.aaa); 28 btnTestScale.setOnClickListener(new View.OnClickListener() { 29 @Override 30 public void onClick(View v) { 31 ObjectAnimator revealAnimator = ObjectAnimator.ofFloat( //缩放X 轴的 32 linearTestScale, "scaleX", 0, 200); 33 ObjectAnimator revealAnimator1 = ObjectAnimator.ofFloat(//缩放Y 轴的 34 linearTestScale, "scaleY", 0, 200); 35 AnimatorSet set = new AnimatorSet(); 36 set.setDuration(500);//设置播放时间 37 set.setInterpolator(new LinearInterpolator());//设置播放模式,这里是平常模式 38 set.playTogether(revealAnimator, revealAnimator1);//设置一起播放 39 set.start(); 40 } 41 }); 42 } 43 }
如果您认为这篇文章还不错或者有所收获,您可以通过扫描一下下面的支付宝二维码 打赏我一杯咖啡【物质支持】,也可以点击右下角的【推荐】按钮【精神支持】,因为这两种支持都是我继续写作,分享的最大动力
、
android 在使用ViewAnimationUtils.createCircularReveal()无法兼容低版本的情况下,另行实现圆形scale动画...相关推荐
- Android实现一键复制粘贴,兼容低版本系统(api 11以下)
Android实现一键复制粘贴,兼容低版本系统(api11以下) /** * 实现文本复制功能 * @param content * @return t ...
- Android开发之解决NestedScrollView滑动监听兼容低版本的方法
NestedScrollView的滑动监听目前仅限api23及以上,为了兼容低版本如下自定义方法 可以自定义NestedScrollView即可如下: package cn.net.gfan.worl ...
- android 沉浸式状态栏 兼容低版本,详解Android沉浸式实现兼容解决办法
自android5.0开始,沉浸式状态栏似乎成为一种潮流,应用里缺少沉浸式总感觉少些什么.于是乎,我开始到处找如何兼容低版本的沉浸式,由于Android平台跨度问题,总遇到一些不如人意的问题.终于,皇 ...
- 3dmax高版本转低版本插件_Fundebug前端JavaScript插件更新至1.8.0,兼容低版本的Android浏览器...
兼容低版本Android浏览器,请大家及时更新. Fundebug前端BUG监控服务 Fundebug是专业的程序BUG监控平台,我们JavaScript插件可以提供全方位的BUG监控,可以帮助开发者 ...
- android 兼容包(可兼容低版本系统)
android 兼容包(可兼容低版本系统) 高Level为了兼容低Level版本,从而推出了兼容包android-support-v* 目前发现的只有三个 android-support-v4 a ...
- [转]AppCompat 22.1,Goole暴走,MD全面兼容低版本
AppCompat 22.1,Goole暴走,MD全面兼容低版本 分类: Android2015-04-24 09:48 1354人阅读 评论(0) 收藏 举报 android 目录(?)[+] 武侠 ...
- jsencrypt.js 兼容低版本IE浏览器(IE9以下)
jsencrypt.js 兼容低版本IE浏览器(IE9以下) IE5.IE6.IE7.IE8使用jsencrypt.js IE5.IE6.IE7.IE8使用RSA加密 JS使用非对称加密 SCRIPT ...
- 解决 Visual Studio 2017 RC 不兼容低版本 Visual Studio 创建的 MVC 4 项目的问题
解决 Visual Studio 2017 RC 不兼容低版本 Visual Studio 创建的 MVC 4 项目的问题 参考文章: (1)解决 Visual Studio 2017 RC 不兼容低 ...
- [css] 你对响应式设计的理解是什么?知道它基本的原理是吗?要想兼容低版本的IE怎么做呢?
[css] 你对响应式设计的理解是什么?知道它基本的原理是吗?要想兼容低版本的IE怎么做呢? 理解:在不同系统,不同设备,不同尺寸的界面,有良好的用户体验,舒适的阅读体验,交互体验. 原理:根据不同设 ...
最新文章
- 人工操作阶段计算机是如何工作的,第一章计算机基础概述全解.ppt
- Java根据当前日期获得这一周的日期
- 公司前台打印机的连接方法(超级简单)
- ML之xgboost:绘制xgboost的二叉树graphviz的两种方法代码实现
- stm32 无符号整形_STM32中“unsigned short”和“unsigned int”的区别是什么?
- 60度斜坡怎么计算_【测绘】南方CASS土方计算方法—方格网法
- Oracle和Mysql的不同
- Java nginx 双向ssl_Nginx配置单项SSL以及双向SSL
- CCF201909-4 推荐系统(100分)【模拟】
- jenkins 手动执行_Win下Jenkins-2.138源码编译及填坑笔记
- EdrawMax思维导图,EdrawMax组织结构图
- JS字符串转json,json转字符串
- easy_ui之搭建后台界面(一)
- ES插件es-head下载和安装
- 蓝牙打印 设置打印样式_Android蓝牙打印机,带你真正了解各种打印格式
- 大数据运维实战第一课 大话 Hadoop 生态圈
- 单利模式的优缺点和使用场景
- Google 真的抄百度了吗?
- AcWing 204. 表达整数的奇怪方式
- 实验室安全事故读后感
热门文章
- 计算机网络环境及应用系统的安装与调试(Computer network environment and application system installation and debugging)
- Java 输入流与输出流
- Verilog以及VHDL所倡导的的代码准则
- 【 Verilog HDL 】寄存器数据类型(reg)与线网数据类型(wire,tri)
- 将中文日期转换成自己想要的格式如:2018年09月29日转换成2018-09-29
- 在Linux命令行下查询当前所使用的shell版本与种类的方法
- 2017 CIO展望:新IT运营模式的5大元素
- React学习实例总结,包含yeoman安装、webpack构建
- webpack 配置简单说几句 ?
- AT+CSMP 设置短消息文本参数