易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
Android 响应键盘移动图标
view plain
copy to clipboard
print
?
package
rw.SurFace;
import
Android.app.Activity;
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.os.Bundle;
import
android.util.DisplayMetrics;
import
android.util.Log;
import
android.view.KeyEvent;
import
android.view.SurfaceView;
public
class
Surfaecview01Activity
extends
Activity {
/** Called when the activity is first created. */
DisplayMetrics sMetrics;
Thread maintThread;
MysurfaceView view;
boolean
up,down,right,left;
class
MysurfaceView
extends
SurfaceView
implements
Runnable{
Bitmap bitmap;
Paint paint=
new
Paint();
long
time;
int
Coord_x,Coord_y;
int
x,y;
public
MysurfaceView(Context context) {
super
(context);
// TODO Auto-generated constructor stub
setFocusable(
true
);
//可以聚焦
bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.a);
paint.setColor(Color.BLUE);
paint.setTextSize(
20
);
x=bitmap.getWidth();
y=bitmap.getHeight()/
2
;
maintThread=
new
Thread(
this
);
maintThread.start();
}
@Override
public
void
run() {
// TODO Auto-generated method stub
while
(
true
) {
DoDraw();
}
}
void
DoDraw()
{
Canvas canvas=getHolder().lockCanvas();
if
(canvas!=
null
) {
canvas.drawColor(Color.WHITE);
if
(up) Coord_y--;
if
(down) Coord_y++;
if
(left) Coord_x--;
if
(right) Coord_x++;
canvas.drawBitmap(bitmap, Coord_x*
10
, Coord_y*
10
,
null
);
long
now=System.currentTimeMillis();
canvas.drawText(
""
+
1000
/(now-time)+
"fps"
, x, y, paint);
time=now;
getHolder().unlockCanvasAndPost(canvas);
}
}
}
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
sMetrics=
new
DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(sMetrics);
/*
* 获取屏幕大小
*/
int
Met_X=sMetrics.widthPixels;
int
Met_Y=sMetrics.heightPixels;
Log.i(
"X--------->"
, Met_X+
""
);
Log.i(
"Y--------->"
, Met_Y+
""
);
setContentView(
new
MysurfaceView(
this
));
}
@Override
public
boolean
onKeyDown(
int
keyCode, KeyEvent event) {
// TODO Auto-generated method stub
switch
(keyCode) {
case
KeyEvent.KEYCODE_DPAD_UP:
up=
true
;
break
;
case
KeyEvent.KEYCODE_DPAD_DOWN:
down=
true
;
break
;
case
KeyEvent.KEYCODE_DPAD_LEFT:
left=
true
;
break
;
case
KeyEvent.KEYCODE_DPAD_RIGHT:
right=
true
;
break
;
default
:
break
;
}
return
super
.onKeyDown(keyCode, event);
}
@Override
public
boolean
onKeyUp(
int
keyCode, KeyEvent event) {
// TODO Auto-generated method stub
switch
(keyCode) {
case
KeyEvent.KEYCODE_DPAD_UP:
up=
false
;
break
;
case
KeyEvent.KEYCODE_DPAD_DOWN:
down=
false
;
break
;
case
KeyEvent.KEYCODE_DPAD_LEFT:
left=
false
;
break
;
case
KeyEvent.KEYCODE_DPAD_RIGHT:
right=
false
;
break
;
default
:
break
;
}
return
super
.onKeyUp(keyCode, event);
}
/* (non-Javadoc)
* @see android.app.Activity#onDestroy()
*/
@Override
protected
void
onDestroy() {
// TODO Auto-generated method stub
Thread.interrupted();
super
.onDestroy();
}
}
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图