Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android gif动画和按钮_Android_Animation_Gif - Fatal编程技术网

android gif动画和按钮

android gif动画和按钮,android,animation,gif,Android,Animation,Gif,我想创建一个动画img,所以当我单击一个按钮时,我可以看到动画。 在我的项目中,我只创建了按钮和图像。在drawable文件夹中,我放置了三个png图像和一个frame_animation.xml,设置了图像和持续时间。在java文件中,我输入以下代码: button1.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ ImageView img =

我想创建一个动画img,所以当我单击一个按钮时,我可以看到动画。 在我的项目中,我只创建了按钮和图像。在drawable文件夹中,我放置了三个png图像和一个frame_animation.xml,设置了图像和持续时间。在java文件中,我输入以下代码:

 button1.setOnClickListener(new View.OnClickListener(){

        public void onClick(View v){
            ImageView img = (ImageView)findViewById(R.id.imageView1);
            img.setBackgroundResource(R.drawable.frame_animation);

            myFrameAnimation=(AnimationDrawable) img.getBackground();
        }
    });

但是当我运行应用程序时,动画不起作用(我只能看到一幅图像,而不是所有的三幅图像)

你还必须启动动画,设置资源是不够的。 在您的例子中,只需添加
myFrameAnimation.start()

完整示例:


似乎你只是偶然遗漏了它,因为你已经从你的资源中获得了
AnimationDrawable

。。。这和动画GIF有什么关系?因为我想放一个GIF文件。为此,我创建了一个frame_动画xml,在其中放置所有提取的帧。然后我修复了java代码,但它不起作用。动画GIF与Android框架动画不同。它是一个单独的文件,而不是不同的文件(每帧1个+动画容器1个)。而且它不需要播放Java代码(也就是说,您可以“按原样”在Web浏览器中播放它)。以下是Android的方式:
button1.setOnClickListener(new View.OnClickListener(){

    public void onClick(View v){
        ImageView img = (ImageView)findViewById(R.id.imageView1);
        img.setBackgroundResource(R.drawable.frame_animation);

        myFrameAnimation=(AnimationDrawable) img.getBackground();
        myFrameAnimation.start();
    }
});