一·率先目錄構造:

 

有三個類,第一個是aplaneactivity主類,然後發生WelcomeView和HelpView類



第二是開發所必需的圖片放在:





第三收穫圖:




點擊開始能夠跳轉到第二版面。



***码:

 

率先aplaneactivity主類



package com.aplane;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.Window;importandroid.view.WindowManager;public class aplaneactivity extends Activity {Handler myHanlder = new Handler() {public void handleMessage(Message msg) {if (msg.what == 1) {initHelpView();}}};public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 全屏requestWindowFeature(Window.FEATURE_NO_TITLE); //題目欄除去getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//初始化迎接介面 this.initWelocmeView();}//初始化迎接介面 private void initWelocmeView() {this.setContentView(new WelcomeView(this, this));}/變形金剛玩具/初始化説明介面 private void initHelpView() {this.setContentView(new HelpView(this,this));}}

 

其次發生WelcomeView class類



package com.aplane;import java.util.HashMap;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;importandroid.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.media.AudioManager;import android.media.SoundPool;import android.view.MotionEvent;import android.view.Su***ceHolder;import android.view.Su***ceView;public class WelcomeView extends Su***ceView implements Su***ceHolder.Callback {aplaneactivity activity;// activity的引用private TutorialThread thread;// 刷幀的執行緒,是內部類刷新迎接介面執行緒Bitmap startGame;// 開始遊戲功能表Bitmap help;// 説明功能表Paint paint;// 用於改換透明度public WelcomeView(Context context, aplaneactivity activity) {// 構造器super(activity);this.activity = activity;// 獲得activity的引用initBitmap();// 初始化圖片資源getHolder().addCallback(this);// 初始化執行緒this.thread = new TutorialThread(getHolder(), this);}private void initBitmap() {// 初始化圖片資源的措施paint = new Paint();// 開始startGame = BitmapFactory.decodeResource(getResources(),R.drawable.startgame);// 説明help = BitmapFactory.decodeResource(getResources(), R.drawable.help);// 退出}public void onDraw(Canvas canvas) {canvas.drawColor(Color.BLACK);// 清屏canvas.drawBitmap(startGame, 170, 100, paint);// 200表示左右www.zhuangyuan.org,100表示上下canvas.drawBitmap(help, 170, 160, paint);}@Overridepublic void su***ceCreated(Su***ceHolder holder) {this.thread.setFlag(true);// 設置迴圈符號位this.thread.start();// 啟用描摹執行緒}@Overridepublic void su***ceChanged(Su***ceHolder holderwww.boduke.info, int format, int width,int height) {}// 定然寫的@Overridepublic void su***ceDestroyed(Su***ceHolder holder) {boolean retry = true;// 迴圈符號thread.setFlag(false);while (retry) {try {thread.join();// 期待執行緒的告終retry = false;// 設置迴圈符號靜止迴圈} catch (InterruptedException e) {}// 不時地迴圈,直到刷幀執行緒告終}}public boolean onTouchEvent(MotionEvent event) {if (event.getAction() == MotionEvent.ACTION_DOWN) {// 螢幕被按下double x = event.getX();double y = event.getY();if (x > 170 && x < 170 + startGame.getWidth() && y > 100&& y < 100 + startGame.getHeight()) {activity.myHanlder.sendEmptyMessage(1);}}return super.onTouchEvent(event);// 調用基類的措施}// 定然寫的class TutorialThread extends Thread {// 刷幀執行緒private int span = 100;// 睡眠的毫秒數private Su***ceHolder su***ceHolder;private WelcomeView welcomeView;// 迎接介面的引用private boolean flag = false;public TutorialThread(Su***ceHolder su***ceHolder,WelcomeView welcomeView) {// 構造器this.su***ceHolder = su***ceHolder;// Su***ceHolder的引用this.welcomeView = welcomeView;// 迎接介面的引用}public void setFlag(boolean flag) {// 設置規範位this.flag = flag;}public void run() {// 重寫的run措施Canvas c;while (this.flag) {// 迴圈c = null;try {// 鎖定全副畫布,在記憶體要求比擬高的情形下,提倡參數不要為nullc = this.su***ceHolder.lockCanvas(null);synchronized (this.su***ceHolder) {// 同步welcomeView.onDraw(c);// 調用描摹措施}} finally {// 用finally保證定然被厲行if (c != null) {// 更新螢幕揭示內容this.su***ceHolder.unlockCanvasAndPost(c);}}try {Thread.sleep(span);// 睡眠指定毫秒數} catch (Exception e) {// 捉拿失常e.printStackTrace();// 列印失常消息}}}}}



最後發生HelpView class類

 

package com.aplane;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.view.MotionEvent;import android.view.Su***ceHolder;import android.view.Su***ceView;public class HelpView extends Su***ceView implements Su***ceHolder.Callback {aplaneactivity activity;// activity的引用private TutorialThread thread;// 刷幀的執行緒,是內部類刷新迎接介面執行緒Paint paint;// 用於改換透明度Bitmap help;public HelpView(Context context, aplaneactivity activity) {super(activity);this.activity = activity;// 獲得activity的引用getHolder().addCallback(this);// 初始化執行緒this.thread = newTutorialThread(getHolder(), this);initBitmap();// 初始化圖片資源}private void initBitmap() {help = BitmapFactory.decodeResource(getResources(), R.drawable.help);} //描摹圖片public void onDraw(Canvas canvas) {canvas.drawColor(Color.BLACK
);// 清屏canvas.drawBitmap(help, 170, 160, paint);}@Overridepublic void su***ceChanged(Su***ceHolder holder, int format, int width,int height) {// TODO Auto-generated method stub}@Overridepublic void su***ceCreated(Su***ceHolder holder) {this.thread.setFlag(true);// 設置迴圈符號位this.thread.start();// 啟用描摹執行緒}@Overridepublic void su***ceDestroyed(Su***ceHolder holder) {boolean retry = true;// 迴圈符號thread.setFlag(false);while (retry) {try {thread.join();// 期待執行緒的告終retry = false;// 設置迴圈符號靜止迴圈} catch (InterruptedException e) {}// 不時地迴圈,直到刷幀執行緒告終}}public boolean onTouchEvent(MotionEvent event) {if (event.getAction() == MotionEvent.ACTION_DOWN) {// 螢幕被按下double x = event.getX();double y = event.getY();if (x > 170 && x < 170 + help.getWidth() && y > 160&& y < 160 + help.getHeight()) {activity.myHanlder.sendEmptyMessage(2);}}return super.onTouchEvent(event);// 調用基類的措施}// 定然寫的-class TutorialThread extends Thread {// 刷幀執行緒private int span = 100;// 睡眠的毫秒數private Su***ceHolder su***ceHolder;private HelpView helpView;// 迎接介面的引用private boolean flag = false;public TutorialThread(Su***ceHolder su***ceHolder, HelpView helpView) {// 構造器this.su***ceHolder = su***ceHolder;// Su***ceHolder的引用this.helpView = helpView;// 迎接介面的引用}public void setFlag(boolean flag) {// 設置規範位this.flag = flag;}public void run() {// 重寫的run措施Canvas c;while (this.flag) {// 迴圈c = null;try {// 鎖定全副畫布,在記憶體要求比擬高的情形下,提倡參數不要為nullc = this.su***ceHolder.lockCanvas(null);synchronized (this.su***ceHolder) {// 同步helpView.onDraw(c);// 調用描摹措施}} finally {// 用finally保證定然被厲行if (c != null) {// 更新螢幕揭示內容this.su***ceHolder.unlockCanvasAndPost(c);}}try {Thread.sleep(span);// 睡眠指定毫秒數} catch (Exception e) {// 捉拿失常e.printStackTrace();// 列印失常消息}}}}}
arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()