• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Android 動畫之幀動畫

    標簽: Android 幀(frame)動畫

        幀動畫是根據視覺停留原理而實現的動畫效果,本例從AnimationDrawable角度來實現一個簡單動畫效果,主頁面如圖:

     

        示例用含有數字1、2、3、4的圖片代表不同的幀,然后通過AnimationDrawable來控制幀動畫。下面說明一下實現過程:

        1、建立動畫文件:

        在res/anim目錄中建立一個xml文件,名稱任取,格式如下:

    <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    		android:oneshot="false" >
    	<item android:drawable="@drawable/n1" android:duration="50" />
    	<item android:drawable="@drawable/n2" android:duration="50" />
    	<item android:drawable="@drawable/n3" android:duration="50" />
    	<item android:drawable="@drawable/n4" android:duration="50" />
    </animation-list>

     說明:

    • android:oneshot:幀動畫運行的次數,true表示運行一次,false表示循環播放;
    • item:定義每幀的屬性;
    • android:drawable:指定該幀對應的圖像資源;
    • android:duration:該幀圖像停留的時間。

        2、裝載并控制幀動畫:

    import android.app.Activity;
    import android.graphics.drawable.AnimationDrawable;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.ImageView;
    
    public class FrameActivity extends Activity implements OnClickListener {
    	
    	private ImageView imageView;
    	private AnimationDrawable animationDrawable;
    	private Button startButton;
    	private Button startOneShotButton;
    	private Button stopButton;
    	private Button pauseOrContinueButton;
    
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    
    		startButton = (Button) findViewById(R.id.button1);
    		startButton.setOnClickListener(this);
    
    		startOneShotButton = (Button) findViewById(R.id.button2);
    		startOneShotButton.setOnClickListener(this);
    
    		stopButton = (Button) findViewById(R.id.button3);
    		stopButton.setOnClickListener(this);
    
    		pauseOrContinueButton = (Button) findViewById(R.id.button4);
    		pauseOrContinueButton.setOnClickListener(this);
    
    		imageView = (ImageView) findViewById(R.id.imageView1);
    		imageView.setBackgroundResource(R.anim.frame_animation);
    		animationDrawable = (AnimationDrawable) imageView.getBackground();
    
    	}
    
    	private void start(boolean isOneShot) {
    		if (animationDrawable != null) {
    			if (animationDrawable.isRunning()) {
    				animationDrawable.stop();
    			}
    			animationDrawable.setOneShot(isOneShot);
    			animationDrawable.start();
    		}
    	}
    
    	@Override
    	public void onClick(View view) {
    
    		if (view == startButton) {
    			start(false);
    			return;
    		}
    
    		if (view == startOneShotButton) {
    			start(true);
    			return;
    		}
    
    		if (view == stopButton) {
    			animationDrawable.stop();
    			return;
    		}
    
    		if (view == pauseOrContinueButton) {
    			if (animationDrawable.isRunning()) {
    				animationDrawable.stop();
    			} else {
    				animationDrawable.start();
    			}
    			return;
    		}
    
    	}
    
    }

      說明:

    • start():開始播放動畫;
    • stop():停止播放動畫;
    • isRunning():判斷動畫是否正在播放;
    • setOneShot():設置是否循環播放。

        AnimationDrawable還有一些其它的控制動畫的方法,具體參看Google開發者網站相關資料。:)

     

        3、多說一句:

        希望對你有所幫助,如需代碼,請點擊附件 !=^_^=

     

    版權聲明:本文為iteye_13686原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/iteye_13686/article/details/82443659

    智能推薦

    Android 基本動畫(幀動畫/補間動畫/屬性動畫)

    Android 基本動畫(幀動畫/補間動畫/屬性動畫) 本文由 Luzhuo 編寫,轉發請保留該信息. 原文: https://blog.csdn.net/Rozol/article/details/79730559 (Drawable Animation)幀動畫 xml文件(存于drawable目錄下) 代碼 View Animation(補間動畫) 補間動畫效果不會改變控件的真實坐標 重復類型...

    Android動畫,幀動畫,補間動畫,屬性動畫

    Android動畫 一、AlphaAnimation( 漸變動畫 ) AlphaAnimation類是Android系統中的透明變化動畫類,用于控制View對象的透明度變化,該類繼承于Animation。 參數說明: fromAlpha:開始時刻的透明度,取值范圍為(0-1) toAlpha:結束時刻透明度,取值范圍為(0-1) 二、RotateAnimation( 旋轉動畫 ) RotateAn...

    Android動畫基礎【1】——(逐幀動畫)

    動畫的意義: 1. 增強視覺效果   2. 更好的引導用戶 整個課程目標:  1. 了解定義逐幀動畫的方法 2. 了解定義視覺動畫的方法 3. 了解定義屬性動畫的方法 整個課程的學習內容: 1. 逐幀動畫 2. 視覺動畫系統 3. 屬性動畫系統 這里首先記錄學習逐幀動畫相關知識 逐幀動畫也叫作圖片動畫。通過在一個固定區域然后一張一張的加載圖片而產生的動畫效果(每一張圖片就是一幀...

    Android 安卓動畫 幀動畫(Frame)

    引入 篇 幀 指的是每秒播放圖片的數量,單位(fps),1 fps 是一幀,當幀速度達到25fps會形成連貫動畫效果 類AnimationDrawable 用于創建逐幀動畫的對象,由一系列Drawable對象定義,這些對象可以用作View對象的背景。創建逐幀動畫的最簡單方法是在XML文件中定義動畫,將其放在res/drawable/文件夾中,并將其作為View對象的背景。然后,調用Run()啟動動...

    Android 學習動畫 — 總結《I》幀動畫

    效果圖: 幀動畫的原理時什么? 把圖片資源順次排列,每張圖片代表一幀,然后依次播放顯示出來,實現人眼看到的動畫效果。幀動畫通過標簽定義,然后在 Android 代碼中把它設置給顯示組件作為背景或者數據源,如 ImageView 的背景等,最后由 AnimationDrawable 提供的 start() 等方法進行播放控制。 自定義并實現一個幀動畫,先在 res / drawable 新建 fra...

    猜你喜歡

    Android 動畫(二)幀動畫 AnimationDrawable

    使用AnimationDrawable實現幀動畫 幀動畫是一種比較傳統的動畫,它是由一系列不同的圖像創建的,按照順序播放,就像播放電影一樣。 雖然可以使用AnimationDrawable類在代碼中定義與使用動畫,但使用單個XML文件定義幀動畫會更簡單。 XML文件由一個元素作為根節點和一系列子節點組成,每個子節點定義一個框架:一個可繪制的框架資源和幀持續時間。 注意:不能在onCreate()調...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡