关闭

android动画之逐帧动画

284人阅读 评论(0) 收藏 举报
逐帧动画:
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();
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:849429次
    • 积分:8414
    • 等级:
    • 排名:第2470名
    • 原创:60篇
    • 转载:210篇
    • 译文:0篇
    • 评论:77条
    文章分类
    最新评论