介绍
小编给大家分享一下安卓实现炫酷播放效果的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
具体内容如下
<强>一,首先看效果强>
<强>二,实现原理强>
使用贝塞尔曲线实现滑动效果,在使用属性动画实现水波纹效果,然后就能实现以上效果
<强>三,实现强>
<强> 1,先封装动画框架,创建动画基础类强>
PathPoint。java
public class PathPoint { , public 才能static final  int MOVE =, 0; public 才能static final  int LINE =, 1; public 才能static final  int CURVE =, 2; float 才能;mControl0X, mControl0Y; float 才能;mControl1X, mControl1Y; public 才能;float  mX,,我; int 才能;mOperation; ,//线/才能移动 private 才能;PathPoint (int 操作,float x,, float y), { ,,,this.mOperation =,操作; ,,,this.mX =, x; ,,,this.mY =, y; ,,} , ,//曲线 private 才能;PathPoint (float c0X, float c0Y,, float c1X,, float c1Y,, float x,, float y), { ,,,this.mControl0X =, c0X; ,,,this.mControl0Y =, c0Y; ,,,this.mControl1X =, c1X; ,,,this.mControl1Y =, c1Y; ,,,this.mX =, x; ,,,this.mY =, y; ,,,this.mOperation =,曲线; , ,,} , public 才能;static  PathPoint 函数(float x,, float y), { , ,,,return new PathPoint(移动,,x,, y); , ,,} , public 才能;static  PathPoint 画线(float x,, float y), { , ,,,return new PathPoint(线,,x,, y); , ,,} , public 才能static PathPoint  curveTo (float c0X, float c0Y,, float c1X,, float c1Y,, float x,, float y), { , ,,,return new PathPoint (c0Y, c0X,还以为,c1X, c1Y,, x,, y); , ,,} }
<强> 2,创建动画集合类,并且保存绘制轨迹强>
AnimatorPath
public class AnimatorPath {//才能记录轨迹 private 才能;List< PathPoint>, mPoints =, new ArrayList<在(); , public 才能;void 函数(float x,, float y), { ,,,mPoints.add (PathPoint.moveTo (x, y)); ,,} , public 才能;void 画线(float x,, float y), { ,,,mPoints.add (PathPoint.lineTo (x, y)); ,,} , public 才能;void  curveTo (float c0X, float c0Y,, float c1X,, float c1Y,, float x,, float y), { ,,,mPoints.add (PathPoint.curveTo (c0Y, c0X,还以为,c1X, c1Y,, x,, y)); ,,} , , public 才能;Collection< PathPoint>, getPoints (), { ,,,return mPoints; ,,} }
<强> 3,实现页面布局强>
& lt; ? xml version=?.0“,编码=皍tf-8" ?比; & lt; RelativeLayout  xmlns: android=癶ttp://schemas.android.com/apk/res/android" xmlns:才能应用=癶ttp://schemas.android.com/apk/res-auto" android:才能layout_width=癿atch_parent" android:才能layout_height=癿atch_parent" android:才能背景=? ffe8e8e8"比; , , & lt; ImageView才能 ,,,android: id=癅 + id/album_cover" ,,,android: layout_width=癿atch_parent" ,,,android: layout_height=?50 dp" ,,,android:背景=? 22 eeff",/比; , & lt; android.support.v7.widget.Toolbar才能 ,,,android: id=癅 + id/toolbar" ,,,android: layout_width=癿atch_parent" ,,,android: layout_height=?20 dp" ,,,android: layout_below=癅 id/album_cover" ,,,android: layout_marginTop=?15 dp" ,,,android:背景=癅color/colorPrimary" ,,,android:海拔=? dp" ,,,android: minHeight=? attr/actionBarSize" ,,,android: paddingLeft=?2 dp"比; , null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null nullAndroid实现炫酷播放效果的方法