可以播放帧动画的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

    • 清除所有资源并停止动画

    </ul>

    项目主页:http://www.open-open.com/lib/view/home/1446619723670