编程语言
首页 > 编程语言> > java – 在ImageButton中使用gif

java – 在ImageButton中使用gif

作者:互联网

如果有人点击它,如何在ImageButton的src中切换动画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”中,我定义了图像的所有帧以获得完美的动画图像

<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" />

标签:animated-gif,android-imagebutton,android,java,android-studio
来源: https://codeday.me/bug/20191003/1847297.html