您的位置:首页 > 移动开发 > Android开发

android动画之逐帧动画

2016-05-31 16:07 405 查看
逐帧动画:

1.准备好每一帧的图片,放入drawabale下面

2.在drawable下建立一个animation-list文件:

<?xml version="1.0" encoding="utf-8"?>

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"

    android:oneshot="true"

     >

    <item

        android:drawable="@drawable/wifi0"

        android:duration="500"/>

    <item

        android:drawable="@drawable/wifi1"

        android:duration="500"/>

    <item

        android:drawable="@drawable/wifi2"

        android:duration="500"/>

    <item

        android:drawable="@drawable/wifi3"

        android:duration="500"/>

    <item

        android:drawable="@drawable/wifi4"

        android:duration="500"/>

    <item

        android:drawable="@drawable/wifi5"

        android:duration="500"/>

</animation-list>

3.imageview可以直接设置src为这个个animation-list文件,也可以先设置为第一张图片:

  <ImageView 

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:id="@+id/ivtest"

        android:layout_centerInParent="true"

        android:src="@drawable/wifi0"

       />

然后在代码里设置逐帧动画:

public void onConnect(View view){
drawable = (AnimationDrawable) getResources().getDrawable(R.drawable.amin_wifi);
imageview.setImageDrawable(drawable);
}

设置成src一开始就会播放,设置成background则不会:

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

    tools:context="com.example.animtest.MainActivity" >

    <ImageView 

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:id="@+id/ivtest"

        android:layout_centerInParent="true"

       android:background="@drawable/amin_wifi"

       />

    

    <Button 

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="连接"

        android:onClick="onConnect"/>

    

    

</RelativeLayout>

代码控制播放

如果不先stop,连续点击的时候不会重新播放

public void onConnect(View view){

drawable.stop();
drawable.start();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

imageview = (ImageView) findViewById(R.id.ivtest);

drawable = (AnimationDrawable) imageview.getBackground();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: