Android开发--Facebook酷炫开源库Shimmer使用
2015-05-31 15:59
591 查看
今天在上网的时候无意间看到了Facebook的Shimmer开源库,感觉很是酷炫,而且使用超方便,决定给大家介绍一下。Shimmer是Facebook提供的一项基于Java的library,它可以使Android中的所有View控件具有闪光的效果。该项目的GitHub项目托管地址,请猛戳https://github.com/facebook/shimmer-android
接下来我们在Android studio中导入所需要的module, 即shimmer-android;
最后,需要配置一下下自己的gradle,引用该module:
效果如下:
REVERSE或者RESTART,REVERSE表示,闪光从左到右,之后在从右到左这样往复;而RESTART表示闪光每次总是从左到右。
为了更形象的说明,我们在代码中添加,
可以看到如下效果:
setAngle方法,与其说是设置角度不如说是设置方向,因为该方法的传入参数只能被设置为以下四种之一,
ShimmerFrameLayout.MaskAngle.CW_0 表示从左到右的方向
ShimmerFrameLayout.MaskAngle.CW_90 表示从上到下的方向
ShimmerFrameLayout.MaskAngle.CW_180 表示从右到左的方向ShimmerFrameLayout.MaskAngle.CW_270 表示从下到上的方向
setIntensity设置光的强度,根据测试来看,应该是被光照的边缘部分的透明度。
使用Shimmer
配置工程
首先,我们在GitHub上将该项目clone到本地;接下来我们在Android studio中导入所需要的module, 即shimmer-android;
最后,需要配置一下下自己的gradle,引用该module:
dependencies { compile project(':shimmer-android') }
添加到布局文件
ShimmerFrameLayout是我们需要使用的类,它继承于Android的Layout,这也就意味着我们可以将自己的布局控件嵌套在该布局之内以实现闪光的效果,简单方便。<com.facebook.shimmer.ShimmerFrameLayout android:id="@+id/shimmerContent" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="@string/hello_world" android:layout_width="wrap_content" android:textSize="40sp" android:textColor="#fff" android:layout_gravity="center" android:layout_height="wrap_content" /> </com.facebook.shimmer.ShimmerFrameLayout>
开始动画
在Activity中获得该布局ShimmerFrameLayout,并调用其startShimmerAnimation方法,我们就可以看到闪光效果了。ShimmerFrameLayout shimmerFrameLayout = (ShimmerFrameLayout) findViewById(R.id.shimmerContent); shimmerFrameLayout.startShimmerAnimation();
效果如下:
定制自己的闪光效果
Facebook为该类提供了几个方法允许我们定制自己的闪光效果,API文档详见http://facebook.github.io/shimmer-android/javadoc/index.html设置动画时间间隔
setDuration方法允许我们传入一个int值来对动画的时间间隔设置,单位是毫秒设置动画重复类型
ShimmerFrameLayout之下的setRepeatMode方法可以允许我们设置动画的重复模式,有两种REVERSE或者RESTART,REVERSE表示,闪光从左到右,之后在从右到左这样往复;而RESTART表示闪光每次总是从左到右。
为了更形象的说明,我们在代码中添加,
shimmerFrameLayout.setRepeatMode(ObjectAnimator.REVERSE);
可以看到如下效果:
设置闪光的倾斜角度
setTilt方法允许我们设置光的倾斜角度,传入参数是float类型,表示倾斜的角度,正值表示顺时针倾斜,负值表示逆时针倾斜。setAngle方法,与其说是设置角度不如说是设置方向,因为该方法的传入参数只能被设置为以下四种之一,
ShimmerFrameLayout.MaskAngle.CW_0 表示从左到右的方向
ShimmerFrameLayout.MaskAngle.CW_90 表示从上到下的方向
ShimmerFrameLayout.MaskAngle.CW_180 表示从右到左的方向ShimmerFrameLayout.MaskAngle.CW_270 表示从下到上的方向
设置光的宽度
setDropoff方法可以设置光的宽度,该值表示的是一个相对的宽度,即表示整个ShimmerFrameLayout宽度的比例。即若设置该值为0.5f则表示光的宽度是ShimmerFrameLayout的一半。设置透明度
setBaseAlpha方法允许我们设置没有光照的地方的透明度setIntensity设置光的强度,根据测试来看,应该是被光照的边缘部分的透明度。
设置光的形状
setMaskShape方法可以允许我们设置光的形状,目前可以设置为线性ShimmerFrameLayout.MaskShape.LINEAR(默认),圆形或者叫辐射状ShimmerFrameLayout.MaskShape.RADIAL相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories