android 中按键响应实例
16lz
2021-01-24
下面实例中是在一个Activity 中通过上下左右方向键来控制红色小方块的移动,未作边界检测
效果如下:
RectControlActivity.java
package cie.Rect;import android.app.Activity;import android.os.Bundle;import android.view.Window;import android.view.WindowManager;public class RectControlActivity extends Activity { /** Called when the activity is first created. */ @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 RectControlView(this)); }}RectControlView.java
package cie.Rect;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.view.KeyEvent;import android.view.View;public class RectControlView extends View {int left = 40;int top = 40;int width = 40;int height = 40;public RectControlView(Context context) {super(context);// TODO Auto-generated constructor stubsetFocusable(true);}@Overrideprotected void onDraw(Canvas canvas) {// TODO Auto-generated method stubsuper.onDraw(canvas);Paint paint = new Paint();paint.setColor(Color.RED);canvas.drawRect(left, top, left+width, top+height, paint);postInvalidate();}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubswitch(keyCode){case KeyEvent.KEYCODE_DPAD_UP:top = top - 10;break;case KeyEvent.KEYCODE_DPAD_DOWN:top = top + 10;break;case KeyEvent.KEYCODE_DPAD_LEFT:left = left - 10;break;case KeyEvent.KEYCODE_DPAD_RIGHT:left = left + 10;break;default:break;}return super.onKeyDown(keyCode, event);}}
更多相关文章
- Android(安卓)通过软引用实现图片缓存,防止内存溢出
- Android中定义接口的方法
- android用户界面教程实例汇总
- Android单选按钮对话框用法实例分析
- Android中Fragment中启动一个Activity,实例化控件。
- 查询SD卡容量信息
- android 用ExpandableListView实现的文件目录树框架
- android实现状态栏添加图标的函数实例
- Android实现Flip翻转动画效果