安卓開發筆記(十七):幀動畫制作與開發


Android動畫主要分為3種
  • View動畫
  • 幀動畫
  • 屬性動畫
何為幀動畫?

幀動畫最簡單,通過順序播放一系列的圖像產生動畫,就和動畫片的原理是一樣的。做好的結果可以是這樣:

也可以是這樣的動態圖:

如果無法播放動態圖的話,可能是您的瀏覽器需要升級一下了。我們為了創建一個好的幀動畫,首先應該創建一個xml文件,用於圖片的輪播,但是這個xml文件有點特殊,因為她必須創建在我們的drawble文件夾下,而且其xml必須以<animation-list>來做開頭與結尾。

對於很多童鞋而言,創建這個xml文件的方式之前大家可能都沒有接觸過,這里先普及一下如何創建這個文件:


第一步

先將目錄欄的模式切換成android 模式

然后右擊你需要創建xml 對應的module

選擇new, 然后 找到Android resource file

將Resource type 選成Drawable

將Root element 選成 animation-list,然后點擊OK 即可

這樣我們的animaition-list的xml文件就創建好了。

再在這個文件里寫上我們的代碼,用於引入我們的圖片:

 

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/i1" android:duration="20"></item>
    <item android:drawable="@drawable/i2" android:duration="20"></item>


    <item android:drawable="@drawable/i3" android:duration="20"/>
    <item android:drawable="@drawable/i4" android:duration="20"/>
    <item android:drawable="@drawable/i5" android:duration="20"/>
    <item android:drawable="@drawable/i6" android:duration="20"/>

    <item android:drawable="@drawable/i7" android:duration="20"/>
    <item android:drawable="@drawable/i8" android:duration="20"/>
    <item android:drawable="@drawable/i9" android:duration="20"/>
    <item android:drawable="@drawable/i10" android:duration="20"/>
    <item android:drawable="@drawable/i11" android:duration="20"/>
    <item android:drawable="@drawable/i12" android:duration="20"/>
    <item android:drawable="@drawable/i12" android:duration="20"/>
    <item android:drawable="@drawable/i12" android:duration="20"/>
    <item android:drawable="@drawable/i12" android:duration="20"/>
    <item android:drawable="@drawable/i12" android:duration="20"/>
    <item android:drawable="@drawable/i12" android:duration="20"/>
    <item android:drawable="@drawable/i12" android:duration="20">


    </item>
</animation-list>

 

后面的duration作為一幀圖片的播放時間,前面則是引入圖片的地址,一般放到drawble文件夾里,對圖片的名稱沒有順序的限制,圖片輪播的順序主要是根據上面這段代碼的順序來制定的。

第二步.編寫activity_main.xml

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="237dp"
        android:layout_alignParentStart="true"
        android:layout_centerVertical="true"
        android:background="@drawable/anima" />

</RelativeLayout>

 

一般來說,里面的imageview用來承接剛剛的animation-list的布局以及圖片,最后我們在我們的java代碼里引入這個imageview就可以了。

第三步.編寫Java代碼

主活動來播放動畫,這里設置點擊背景時觸發動畫,代碼很簡單,之后我們再看直接不需要點擊就播放的代碼:

public class MainActivity extends Activity
{

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView imageView = (ImageView) findViewById(R.id.imageView1);

        final AnimationDrawable background = (AnimationDrawable) imageView
                .getBackground();
        imageView.setOnClickListener(new OnClickListener()
        {

            public void onClick(View v)
            {
                background.start();
            }
        });
    }

}

無需點擊,直接播放的代碼如下:

public class MainActivity extends Activity
{

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView imageView = (ImageView) findViewById(R.id.imageView1);

        final AnimationDrawable background = (AnimationDrawable) imageView
                .getBackground();
      

                background.start();
       

}

這樣再運行我們的文件,可以看到動畫已經播放出來啦!!

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM