摇骰子的动画制作

来源:互联网 发布:购买电话销售数据 编辑:程序博客网 时间:2024/04/27 22:30

首先是布局:

<?xml version="1.0" encoding="utf-8"?><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"    android:background="#FFFFFF"    tools:context="com.eascs.seizi.MainActivity">    <ImageView        android:id="@+id/iv"        android:layout_width="60dp"        android:layout_height="60dp"        android:layout_centerInParent="true"        />    <ImageView        android:id="@+id/result"        android:layout_width="60dp"        android:layout_height="60dp"        android:layout_centerInParent="true"        android:background="@mipmap/one"/>    <Button        android:id="@+id/btn_start"        android:layout_width="match_parent"        android:layout_height="50dp"        android:text="start"/></RelativeLayout>

然后为了方便全部代码都写在一个MainActivity里面了

import android.app.Activity;import android.graphics.drawable.AnimationDrawable;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.widget.Button;import android.widget.ImageView;import java.util.Random;import java.util.TimerTask;public class MainActivity extends Activity implements View.OnClickListener {    private ImageView iv, result;    private int[] dis = {R.mipmap.move_1, R.mipmap.move_2, R.mipmap.move_3};    private AnimationDrawable ad;    private Button start;    private Handler mHandler;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        iv = (ImageView) findViewById(R.id.iv);        start = (Button) findViewById(R.id.btn_start);        result = (ImageView) findViewById(R.id.result);        start.setOnClickListener(this);        mHandler = new Handler() {            @Override            public void handleMessage(Message msg) {                ad.stop();                int r = new Random().nextInt(6);                result.setVisibility(View.VISIBLE);                int res = -1;                switch (r) {                    case 0:                        res = R.mipmap.one;                        break;                    case 1:                        res = R.mipmap.two;                        break;                    case 2:                        res = R.mipmap.three;                        break;                    case 3:                        res = R.mipmap.four;                        break;                    case 4:                        res = R.mipmap.five;                        break;                    case 5:                        res = R.mipmap.six;                        break;                }                if (r != -1) {                    result.setBackgroundDrawable(getResources().getDrawable(res));                }            }        };    }    private void start() {        result.setVisibility(View.GONE);        if (ad == null) {            ad = new AnimationDrawable();            for (int i = 0; i < 3; i++) {                ad.addFrame(getResources().getDrawable(dis[i]), 150);            }            ad.setOneShot(false);            iv.setBackgroundDrawable(ad);        }        if (ad.isRunning()) {            return;        }        ad.start();        java.util.Timer timer = new java.util.Timer();        timer.schedule(new TimerTask() {            @Override            public void run() {               mHandler.sendEmptyMessage(0);            }        }, 1000);    }    @Override    public void onClick(View v) {        start();    }}

代码很简单,一看就懂,我就不多解释了。

图片资源 http://download.csdn.net/detail/zhoudailiang/9345901

0 0