可以播放帧动画的ImageView:FAImageView
jopen
9年前
可以播放帧动画的ImageView,每帧图片直接通过add函数添加。
设置 Gradle
dependencies { ... compile 'kr.pe.burt.android.lib:faimageview:0.0.2' }
在布局文件中声明:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context=".MainActivity" > <kr.pe.burt.android.lib.faimageview.FAImageView android:id="@+id/faimageview1" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/> <kr.pe.burt.android.lib.faimageview.FAImageView android:id="@+id/faimageview2" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/> </LinearLayout>
在代码中添加帧:
public class MainActivity extends AppCompatActivity { FAImageView faImageView1, faImageView2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); faImageView1 = (FAImageView)findViewById(R.id.faimageview1); faImageView1.setInterval(30); faImageView1.setLoop(true); faImageView1.addImageFrame(R.drawable.frame01); faImageView1.addImageFrame(R.drawable.frame02); faImageView1.addImageFrame(R.drawable.frame03); faImageView1.addImageFrame(R.drawable.frame04); faImageView1.addImageFrame(R.drawable.frame05); faImageView1.addImageFrame(R.drawable.frame06); faImageView1.addImageFrame(R.drawable.frame07); faImageView1.addImageFrame(R.drawable.frame08); faImageView1.addImageFrame(R.drawable.frame09); faImageView1.addImageFrame(R.drawable.frame10); faImageView2 = (FAImageView)findViewById(R.id.faimageview2); faImageView2.setInterval(100); faImageView2.setLoop(true); faImageView2.addImageFrame(R.drawable.frame01); faImageView2.addImageFrame(R.drawable.frame02); faImageView2.addImageFrame(R.drawable.frame03); faImageView2.addImageFrame(R.drawable.frame04); faImageView2.addImageFrame(R.drawable.frame05); faImageView2.addImageFrame(R.drawable.frame06); faImageView2.addImageFrame(R.drawable.frame07); faImageView2.addImageFrame(R.drawable.frame08); faImageView2.addImageFrame(R.drawable.frame09); faImageView2.addImageFrame(R.drawable.frame10); } @Override protected void onResume() { super.onResume(); faImageView1.startAnimation(); faImageView2.startAnimation(); } @Override protected void onPause() { super.onPause(); faImageView1.stopAnimaion(); faImageView2.stopAnimaion(); } }
API:
-
setInterval(int milli)
-
设置frame间的时间间隔单位毫秒。
-
addImageFrame(int resId)
-
添加一个图片帧。
-
setLoop(boolean loop)
-
如果你想无限循环播放,设置为true,默认为false。
-
setRestoreFirstFrameWhenFinishAnimation(boolean restore)
-
如果你想在动画结束的时候让图片恢复到第一帧,设置为true。
-
setAnimationRepeatCount(int animationRepeatCount)
-
设置重复次数,只有在动画不是无限循环的情况下这个值才有意义。
-
startAnimation()
-
开始动画
-
stopAnimation
-
停止动画
-
reset
-
清除所有资源并停止动画