可以播放幀動畫的ImageView:FAImageView

jopen 10年前發布 | 11K 次閱讀 Android開發 移動開發 FAImageView

可以播放幀動畫的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

    • 清除所有資源并停止動畫

項目主頁:http://www.baiduhome.net/lib/view/home/1446619723670

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!