作者lin790505 (舞踏linkl)
看板AndroidDev
標題[問題] 如何設定動畫只播放一次?
時間Mon Mar 19 15:09:34 2012
<?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
1F:→ Eior:寫死的話,我會在ad.start()之後用個thread判斷240*4秒後停止 03/19 15:31
2F:→ Eior:上面是毫秒……漏了。 03/19 15:32
3F:→ lin790505:沒寫死的打算 因為我打算拿來另外使用 03/19 16:04
4F:→ lin790505:目前查到把oneshot改true後可以只播一次 但要兩次以上 03/19 16:06
5F:→ lin790505:就沒辦法了 用for-loop好像也沒用 03/19 16:06
6F:→ Eior:笨一點的方法是把xml的內容複製四遍 03/19 16:08
7F:→ lin790505:這好像不太好用 如果後來改由手機輸入重覆次數的話 03/19 16:36
8F:→ lin790505:就不適用了 03/19 16:36