作者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