[問題] 如何設定動畫只播放一次?

看板AndroidDev作者 (舞踏linkl)時間14年前 (2012/03/19 15:09), 編輯推噓0(009)
留言9則, 3人參與, 最新討論串1/1
<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false" > <item android:duration="10" android:drawable="@drawable/firefox_0" /> <item android:duration="10" android:drawable="@drawable/firefox_1" /> <item android:duration="10" android:drawable="@drawable/firefox_2" /> <item android:duration="10" android:drawable="@drawable/firefox_3" /> <item android:duration="10" android:drawable="@drawable/firefox_4" /> <item android:duration="10" android:drawable="@drawable/firefox_5" /> <item android:duration="10" android:drawable="@drawable/firefox_6" /> <item android:duration="10" android:drawable="@drawable/firefox_7" /> <item android:duration="10" android:drawable="@drawable/firefox_8" /> <item android:duration="10" android:drawable="@drawable/firefox_9" /> <item android:duration="10" android:drawable="@drawable/firefox_10" /> <item android:duration="10" android:drawable="@drawable/firefox_11" /> <item android:duration="10" android:drawable="@drawable/firefox_12" /> <item android:duration="10" android:drawable="@drawable/firefox_13" /> <item android:duration="10" android:drawable="@drawable/firefox_14" /> <item android:duration="10" android:drawable="@drawable/firefox_15" /> <item android:duration="10" android:drawable="@drawable/firefox_16" /> <item android:duration="10" android:drawable="@drawable/firefox_17" /> <item android:duration="10" android:drawable="@drawable/firefox_18" /> <item android:duration="10" android:drawable="@drawable/firefox_19" /> <item android:duration="10" android:drawable="@drawable/firefox_20" /> <item android:duration="10" android:drawable="@drawable/firefox_21" /> <item android:duration="10" android:drawable="@drawable/firefox_22" /> <item android:duration="10" android:drawable="@drawable/firefox_23" /> <item android:duration="10" android:drawable="@drawable/firefox_24" /> </animation-list> 這是找到的範例動畫xml檔 是一個火狐在轉圈(0~24為一圈的圖檔) 主程式為 public class MainFrameAnimation extends Activity { /** Called when the activity is first created. */ private Button b1; private Button b2; private ImageView v1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViews(); setListensers(); } private void findViews(){ b1 = (Button) findViewById(R.id.Button1); b2 = (Button) findViewById(R.id.Button2); v1 = (ImageView)findViewById(R.id.ImageView01); } private void setListensers(){ b1.setOnClickListener(ocl); b2.setOnClickListener(ocl); b1.setBackgroundResource(R.drawable.icon); b2.setBackgroundResource(R.drawable.icon); } private Button.OnClickListener ocl =new Button.OnClickListener() { @Override public void onClick(View v) { AnimationDrawable ad = (AnimationDrawable) v1.getBackground(); switch (v.getId()) { case R.id.Button1: ad.start(); break; case R.id.Button2: ad.stop(); break; } } }; } 我希望動畫只要按一下按鈕就轉4次就好 目前這個會一直轉個不停 我應該要改那個部份才能達到這個目的呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.40.161

03/19 15:31, , 1F
寫死的話,我會在ad.start()之後用個thread判斷240*4秒後停止
03/19 15:31, 1F

03/19 15:32, , 2F
上面是毫秒……漏了。
03/19 15:32, 2F

03/19 16:04, , 3F
沒寫死的打算 因為我打算拿來另外使用
03/19 16:04, 3F

03/19 16:06, , 4F
目前查到把oneshot改true後可以只播一次 但要兩次以上
03/19 16:06, 4F

03/19 16:06, , 5F
就沒辦法了 用for-loop好像也沒用
03/19 16:06, 5F

03/19 16:08, , 6F
笨一點的方法是把xml的內容複製四遍
03/19 16:08, 6F

03/19 16:36, , 7F
這好像不太好用 如果後來改由手機輸入重覆次數的話
03/19 16:36, 7F

03/19 16:36, , 8F
就不適用了
03/19 16:36, 8F

03/19 22:01, , 9F
http://goo.gl/l4eHr stackoverflow這篇有人在說
03/19 22:01, 9F
文章代碼(AID): #1FPjknU7 (AndroidDev)