代码演示:
package com.example.myapplication;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
/**
* Created by 涂阳丽 on 2017/5/24.
*/
public class GameMenu {
private Bitmap bmpMenuBG;//菜单页面背景图片
private Bitmap bmpLogo; // 菜单页面logo
private Bitmap bmpButton;//菜单页面Button
private Bitmap bmpText;
private Rect rect;
// 菜单页面文本
public GameMenu(Bitmap bmpMenuBG,Bitmap bmpLogo,Bitmap bmpButton,Bitmap bmpText){
this.bmpMenuBG=bmpMenuBG;
this.bmpLogo=bmpLogo;
this.bmpButton=bmpButton;
this.bmpText=bmpText;
rect=new Rect( 0,
GameSurface.screenHeight / 3,
GameSurface.screenWidth,
GameSurface.screenHeight / 3 +GameSurface.screenHeight /5);
}
public void draw(Canvas canvas, Paint paint){
canvas.drawBitmap(bmpMenuBG,0,0,paint);
canvas.drawBitmap(bmpLogo,null,rect,paint);
int x=GameSurface.screenWidth/2-bmpButton.getWidth()/2;
int y = GameSurface.screenHeight/3*2;
canvas.drawBitmap(bmpButton,x,y,paint);
int z=GameSurface.screenWidth/2-bmpButton.getWidth()/3;
int s = GameSurface.screenHeight/3*2+20;
canvas.drawBitmap(bmpText,z,s,paint);
}
}
package com.example.myapplication;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
/**
* Created by 涂阳丽 on 2017/5/24.
*/
public class GameSurface extends SurfaceView implements SurfaceHolder.Callback {
private SurfaceHolder surfaceHolder;
private Canvas canvans;
private Paint paint;
public static int screenWidth;
public static int screenHeight;
//menu相关
private GameMenu gameMenu;
private Bitmap bmpMenuBG;//菜单页面背景图片
private Bitmap bmpLogo; // 菜单页面logo
private Bitmap bmpButton;//菜单页面Button
private Bitmap bmpText;// 菜单页面文本
public GameSurface(Context context) {
super(context);
surfaceHolder = this.getHolder();
surfaceHolder.addCallback(this);
paint=new Paint();
paint.setAntiAlias(true);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
screenWidth=this.getWidth();
screenHeight=this.getHeight();
initBitmap();
new Thread(new Runnable() {
@Override
public void run() {
while (true)
mydraw();
}
}).start();
}
/**
* 绘图方法
*/
private void mydraw() {
canvans = surfaceHolder.lockCanvas();
//调用GameMenu对象画游戏菜单
gameMenu.draw(canvans,paint);
if(canvans != null){
surfaceHolder.unlockCanvasAndPost(canvans);
}
}
/**
* 初始化图片方法
*/
private void initBitmap() {
//把图片转换成Bitmap格式
bmpMenuBG = BitmapFactory.decodeResource(this.getResources(),R.drawable.mainmenu);
bmpLogo = BitmapFactory.decodeResource(this.getResources(),R.drawable.logo);
bmpButton = BitmapFactory.decodeResource(this.getResources(),R.drawable.menustart);
bmpText = BitmapFactory.decodeResource(this.getResources(),R.drawable.starttext);
gameMenu =new GameMenu(bmpMenuBG,bmpLogo,bmpButton,bmpText);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
}