android使用xml定义帧动画

时间: 2015-02-01 00:25 栏目: Android 浏览: 8595 赞: 0 踩: 0 字体:

以下为本篇文章全部内容:

大家在网页中经常可以看懂动态图片,也就是gif格式的图片,在android中可以通过xml来定义这组动画,就是把多张有关联性的图片,放到了一起。并快速的切换下一张图片,就形成了动态图片,这个原理跟以前的电影胶卷类似,快速的更换图片达到一种连贯的效果,我们看起来就像是一组动作了。今天给大家带来的就是在android中如何使用xml来进行操作把一组图片做成一组动作。

效果图:

xml帧动画.gif

布局xml代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.xmlfram.MainActivity" >

    <ImageView
        android:id="@+id/iv"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>

xml定义帧动画代码:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@drawable/img_1"
        android:duration="200"/>
    <item
        android:drawable="@drawable/img_2"
        android:duration="200"/>
    <item
        android:drawable="@drawable/img_3"
        android:duration="200"/>
    <item
        android:drawable="@drawable/img_4"
        android:duration="200"/>
    <item
        android:drawable="@drawable/img_5"
        android:duration="200"/>
    <item
        android:drawable="@drawable/img_6"
        android:duration="200"/>
    <item
        android:drawable="@drawable/img_7"
        android:duration="200"/>
    <item
        android:drawable="@drawable/img_8"
        android:duration="200"/>

</animation-list>

java实现代码:

public class MainActivity extends Activity {
    private AnimationDrawable ss;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        ImageView img = (ImageView)findViewById(R.id.iv);
        img.setBackgroundResource(R.drawable.gif);
        ss = (AnimationDrawable) img.getBackground();//获取AnimationDrawable对象
    }
    
    /*
     * 触屏事件的时候开始动画
     */
    public boolean onTouchEvent(MotionEvent event){
    	//判断事件是否为触屏事件
    	if(event.getAction()==MotionEvent.ACTION_DOWN){
    	    ss.start();//AnimationDrawable的start方法开启动画
    	    return true;
    	}
	return super.onTouchEvent(event);
    }
}

如果大家有什么疑问可以加我QQ327388905进行学习交流