当有人点击它时,如何在ImageButton的src中切换动画GIF图像和静态GIF图像?
在onCreate()
我有这个
aButton3 = (ImageButton) findViewById(R.id.imageButton3);
SharedPreferences sharedPreferences = getSharedPreferences("NAME", Context.MODE_PRIVATE);
Boolean e = sharedPreferences.getBoolean("clicked3", false);
当有人点击ImageButton
时会执行以下操作public void buttonClick2(View v) {
SharedPreferences sharedPreferences = getSharedPreferences("NAME", Context.MODE_PRIVATE);
Boolean d = sharedPreferences.getBoolean("clicked2", false);
if (!d) {
toggleSound.start();
aButton2.setImageResource(R.drawable.on);
sharedPreferences = getSharedPreferences("NAME", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("clicked2", true);
editor.commit();
}
if(d){
toggleSound.start();
aButton2.setImageResource(R.drawable.off);
sharedPreferences = getSharedPreferences("NAME", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor = sharedPreferences.edit();
editor.putBoolean("clicked2", false);
editor.commit();
}
}
答案 0 :(得分:0)
我找到了一种方法,它的工作非常好。 首先我定义了全局变量
AnimationDrawable myFrameAnimation;
然后在onCreate()中我用一个变量定义了按钮。
aButton3 = (ImageButton) findViewById(R.id.imageButton3);
然后为该按钮创建一个onClickListener()方法。
aButton3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences sharedPreferences = getSharedPreferences("NAME", Context.MODE_PRIVATE);
Boolean e = sharedPreferences.getBoolean("clicked3", false);
if (!e) {
toggleSound.start();
aButton3.setImageResource(R.drawable.trans);
aButton3.setBackgroundResource(R.drawable.frame_animation);
myFrameAnimation=(AnimationDrawable) aButton3.getBackground();
myFrameAnimation.start();
aButton4.setImageResource(R.drawable.reg1);
def=1;
count=1;
sharedPreferences = getSharedPreferences("NAME", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("clicked3", true);
editor.commit();
editor.putInt("clicked5", def);
editor.commit();
editor.putInt("clicked4", count);
editor.commit();
}
if(e){
toggleSound.start();
aButton3.setBackgroundResource(R.drawable.frame_animation2);
myFrameAnimation=(AnimationDrawable) aButton3.getBackground();
myFrameAnimation.start();
aButton3.setImageResource(R.drawable.newoff);
aButton4.setImageResource(R.drawable.reg0);
count=0;
def=0;
sharedPreferences = getSharedPreferences("NAME", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor = sharedPreferences.edit();
editor.putBoolean("clicked3", false);
editor.commit();
editor.putInt("clicked4", count);
editor.commit();
editor.putInt("clicked6", def);
editor.commit();
}
}
});
这里" trans"是一个纯粹透明的图像,因此单击之前我之前的图像不会显示。
" frame_animation"我定义了图像的所有帧以获得完美的动画图像
<animation-list android:oneshot="false" xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/pic1" android:duration="5" />
<item android:drawable="@drawable/pic2" android:duration="5" />
<item android:drawable="@drawable/pic3" android:duration="5" />
<item android:drawable="@drawable/pic4" android:duration="5" />
<item android:drawable="@drawable/pic5" android:duration="5" />
<item android:drawable="@drawable/pic6" android:duration="5" />
<item android:drawable="@drawable/pic7" android:duration="5" />
<item android:drawable="@drawable/pic8" android:duration="5" />
<item android:drawable="@drawable/pic9" android:duration="5" />