Android实现炫酷播放效果的方法

  介绍

小编给大家分享一下安卓实现炫酷播放效果的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

具体内容如下

<强>一,首先看效果

 Android实现炫酷播放效果的方法

<强>二,实现原理

使用贝塞尔曲线实现滑动效果,在使用属性动画实现水波纹效果,然后就能实现以上效果

<强>三,实现

<强> 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   null

Android实现炫酷播放效果的方法