【Android游戏特效】项目实战

今天带来的是游戏特技,放个大招,让大家感受一下Android也是可以酷炫地!!!

项目效果图

静态效果图

动态效果图

【Android游戏特效】项目实战_第1张图片

项目结构

项目图片资源

背景图片:main_bg.png
特效图片:z1.png~z23.png(一共23张图,可随意增删,看特效需要)
说明: 放于drawable-hdpi目录下

z1.png

【Android游戏特效】项目实战_第2张图片

【Android游戏特效】项目实战_第3张图片【Android游戏特效】项目实战_第4张图片

【Android游戏特效】项目实战_第5张图片

z9.png【Android游戏特效】项目实战_第6张图片【Android游戏特效】项目实战_第7张图片【Android游戏特效】项目实战_第8张图片

【Android游戏特效】项目实战_第9张图片【Android游戏特效】项目实战_第10张图片

【Android游戏特效】项目实战_第11张图片z20.png

【Android游戏特效】项目实战_第12张图片

【Android游戏特效】项目实战_第13张图片

技术预告

界面技术:FrameLayout(帧布局或层叠布局)
逻辑技术:Timer(定时器类),TimerTask(定时任务类),Handler(收发消息类),Drawable(位图类)
数组,for循环,方法,代码获取图片资源Id

界面开发

主界面布局文件:layout/activity_main.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/main_bg" >

</FrameLayout>

注册文件:AndroidMenifest.xml(默认就好,没有改动这里)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.kedi.teji" android:versionCode="1" android:versionName="1.0" >

    <uses-sdk  android:minSdkVersion="8" android:targetSdkVersion="19" />

    <application  android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" >
        <activity  android:name="com.kedi.teji.MainActivity" android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

其他布局或资源文件也没有改动,默认就好。

功能开发

包:com.kedi.teji
主界面类MainActivity.java

package com.kedi.teji;

import java.util.Timer;
import java.util.TimerTask;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.view.Gravity;
import android.widget.FrameLayout;

/** * 主界面类 * * @author 科弟 * */
public class MainActivity extends Activity {
    // 帧布局变量
    private FrameLayout mCantainerFl;
    // 定义消息标识
    private static final int WHAT = 0x001;
    // 定义存放23张图片的图片对象
    private Drawable[] pics = new Drawable[23];
    // Handler的作用: 发送和接收消息的,可在HandleMessage接收消息并做相应的处理
    private Timer timer;// 定时器类
    @SuppressLint("HandlerLeak")
    private Handler mHandler = new Handler() {
        // 定义i变量,以方便循环显示图片,
        int i = 0;

        public void handleMessage(android.os.Message msg) {
            // 判断是否为本应用发送的消息
            if (msg.what == WHAT) {
                i++;
                teji(i % 23);
            }
            super.handleMessage(msg);
        };

    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mCantainerFl = (FrameLayout) this.findViewById(R.id.container);
        //初始化图片对象数组
        initPics();
        // 定时器类
        timer = new Timer();
        // 任务
        TimerTask task = new TimerTask() {

            @Override
            public void run() {
                // 发送消息
                mHandler.sendEmptyMessage(WHAT);
            }
        };
        // 每170毫秒执行一次发送消息的任务
        timer.schedule(task, 0,170);
    }

    /** * 初始化图片对象数组 */
    private void initPics() {
        for (int i = 0; i < pics.length; i++) {
            //获得图片的ID
            int drawableId = getResources().getIdentifier("z" + (i + 1),
                    "drawable", "com.kedi.teji");
            //获得指定Id的图片对象,并存放到数组中
            pics[i] = getResources().getDrawable(drawableId);
        }
    }

    /** * 为FrameLayout设置前景图片以及前景图片要显示的位置(居中) * * @param i */
    private void teji(int i) {
        mCantainerFl.setForeground(pics[i]);
        mCantainerFl.setForegroundGravity(Gravity.CENTER);
    }

    @Override
    protected void onPause() {
        super.onPause();
        //界面快要关闭时取消定时器,要不然程序退出后次定时器的任务还在执行
        timer.cancel();
    }
}

下载地址

下载地址:  http://download.csdn.net/detail/kedi_study/8938293        

你可能感兴趣的:(【Android游戏特效】项目实战)