易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
Android 模拟小球来回撞墙效果(游戏的开始)
Android 模拟小球来回撞墙效果代码:
package
com.ball;
import
android.app.Activity;
import
android.os.Bundle;
import
android.view.Window;
import
android.view.WindowManager;
public
class
MainActivity
extends
Activity {
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(
//设置为全屏模式
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(
new
BallView(
this
));
}
}
package
com.ball;
import
android.content.Context;
import
android.content.res.Resources;
import
android.graphics.Bitmap;
import
android.graphics.BitmapFactory;
import
android.graphics.Canvas;
import
android.view.SurfaceHolder;
import
android.view.SurfaceView;
public
class
BallView
extends
SurfaceView
implements
SurfaceHolder.Callback {
Bitmap bitmapBall =
null
;
Movable movable =
null
;
DrawThread dt;
Bitmap bmpBack;
public
BallView(Context context) {
super
(context);
getHolder().addCallback(
this
);
initBitmaps(getResources());
initMovable();
dt =
new
DrawThread(
this
,getHolder());
}
public
void
initBitmaps(Resources r) {
bitmapBall = BitmapFactory.decodeResource(r, R.drawable.icon);
}
public
void
initMovable() {
movable =
new
Movable(
0
,
0
,
0
, bitmapBall);
}
public
void
doDraw(Canvas canvas) {
int
color = getResources().getColor(android.R.color.white);
canvas.drawColor(color);
movable.drawSelf(canvas);
}
@Override
public
void
surfaceChanged(SurfaceHolder holder,
int
format,
int
width,
int
height) {
}
@Override
public
void
surfaceCreated(SurfaceHolder holder) {
if
(!dt.isAlive()) {
dt.start();
}
}
@Override
public
void
surfaceDestroyed(SurfaceHolder holder) {
dt.flag =
false
;
dt =
null
;
}
}
package
com.ball;
import
android.graphics.Canvas;
import
android.view.SurfaceHolder;
public
class
DrawThread
extends
Thread {
boolean
flag =
false
;
BallView ballView;
SurfaceHolder surfaceHolder;
int
sleepSpan =
30
;
public
DrawThread(BallView ballView, SurfaceHolder surfaceHolder) {
this
.ballView = ballView;
this
.surfaceHolder = surfaceHolder;
this
.flag =
true
;
}
public
void
run() {
Canvas canvas =
null
;
while
(flag) {
try
{
canvas = surfaceHolder.lockCanvas(
null
);
synchronized
(surfaceHolder) {
ballView.doDraw(canvas);
}
}
catch
(Exception e) {
e.printStackTrace();
}
finally
{
if
(canvas !=
null
) {
surfaceHolder.unlockCanvasAndPost(canvas);
}
}
try
{
Thread.sleep(sleepSpan);
}
catch
(Exception e){
e.printStackTrace();
}
}
}
}
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图