在ImageButton中使用gif

如果有人点击它,如何在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(); } } 

我想出了一个方法,它的工作非常好。 首先我定义了全局变量

 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”中,我定义了图像的所有帧以获得完美的动画图像

           

Interesting Posts