shimmer开源库介绍

       Shimmer是Facebook提供的一项基于Java的library,它可以使Android中的所有View控件具有闪光的效果。该项目的GitHub项目托管地址是https://github.com/facebook/shimmer-android

       shimmer开源库基本使用

       下载Shimmer开源库,并引用到工程中。我们需要使用ShimmerFrameLayout类,它继承于Android的Layout,我们可以将自己的布局控件嵌套在该布局之内以实现闪光的效果。

XML/HTML代码
  1. <com.facebook.shimmer.ShimmerFrameLayout  
  2.     android:id="@+id/shimmerContent"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent">  
  5.    
  6.     <TextView   
  7.         android:text="@string/hello_world"  
  8.         android:layout_width="wrap_content"  
  9.         android:textSize="40sp"  
  10.         android:textColor="#fff"  
  11.         android:layout_gravity="center"  
  12.         android:layout_height="wrap_content" />  
  13. </com.facebook.shimmer.ShimmerFrameLayout>  

        开始shimmer动画

        调用ShimmerFrameLayout的startShimmerAnimation方法开始动画。

Java代码
  1. ShimmerFrameLayout shimmerFrameLayout = (ShimmerFrameLayout) findViewById(R.id.shimmerContent);  
  2. shimmerFrameLayout.startShimmerAnimation();  

        设置shimmer动画的时间间隔

        调用ShimmerFrameLayout的setDuration传入一个int值来对动画的时间间隔设置,单位是毫秒。

        设置shimmer动画重复类型

        调用ShimmerFrameLayout的setRepeatMode方法设置动画的重复模式。

        REVERSE表示,闪光从左到右,之后在从右到左这样往复;

        RESTART表示闪光每次总是从左到右。

Java代码
  1. shimmerFrameLayout.setRepeatMode(ObjectAnimator.REVERSE);  

       设置shimmer闪光的倾斜角度

       调用setTilt方法设置光的倾斜角度,传入参数是float类型,表示倾斜的角度,正值表示顺时针倾斜,负值表示逆时针倾斜。

       调用setAngle方法设置方向,传入参数只能被设置为以下四种之一,

       ShimmerFrameLayout.MaskAngle.CW_0 表示从左到右的方向

       ShimmerFrameLayout.MaskAngle.CW_90 表示从上到下的方向

       ShimmerFrameLayout.MaskAngle.CW_180 表示从右到左的方向ShimmerFrameLayout.MaskAngle.CW_270 表示从下到上的方向

       设置shimmer闪光的宽度

       调用setDropoff方法设置光的宽度,该值表示的是一个相对的宽度,即表示整个ShimmerFrameLayout宽度的比例。即若设置该值为0.5f则表示光的宽度是ShimmerFrameLayout的一半。

       设置shimmer闪光的透明度

       setBaseAlpha方法允许我们设置没有光照的地方的透明度。

       setIntensity设置光的强度,根据测试来看,应该是被光照的边缘部分的透明度。

       设置shimmer闪光的形状

       setMaskShape方法可以允许我们设置光的形状,目前可以设置为线性ShimmerFrameLayout.MaskShape.LINEAR(默认),圆形或者叫辐射状ShimmerFrameLayout.MaskShape.RADIAL。

本文发布:Android开发网
本文地址:http://www.teaching4real.com/android/example/456.html
2015年6月2日
发布:鸡啄米 分类:Android开发实例 浏览: 注册送白菜网:0