案例演示
1、创建安卓应用
2、放入图片
米老鼠的背景要镂空
3、主字符串资源文件
<resources>
<string name="app_name">通过按键移动米老鼠</string>
</resources>
4、主布局资源文件
修改布局为线性布局,设置相关属性
添加一个图像视图,设置相关属性
查看预览效果
5、主界面类实现功能
声明常量和变量
通过资源标识符获取控件实例
让线性布局获取焦点
获取米老鼠图像控件的布局参数
给线性根布局注册按键监听器
public boolean onKey(View v, int keyCode, KeyEvent event) {
//根据按键来修改米老鼠图像控件的布局参数 - 主要是改变图像的位置
switch (keyCode){
case KeyEvent.KEYCODE_DPAD_UP://19按上方向键
layoutParams.topMargin = layoutParams.topMargin - STEP;
break;
case KeyEvent.KEYCODE_DPAD_DOWN://20,按下方向键
layoutParams.topMargin = layoutParams.topMargin + STEP;
break;
case KeyEvent.KEYCODE_DPAD_LEFT://21,按左方向键
layoutParams.leftMargin = layoutParams.leftMargin - STEP;
break;
case KeyEvent.KEYCODE_DPAD_RIGHT://22,按右方向键
layoutParams.leftMargin = layoutParams.leftMargin + STEP;
break;
}
//重新设置米老鼠图像控件的布局参数,改变其位置
ivMickey.setLayoutParams(layoutParams);
return false;//事件要往后传播
}
按上下左右方向键来测试
6、代码说明
如果根布局没有获得焦点,那么按键不会移动米老鼠
要将图像的布局参数类型转换成线性布局的布局参数
布局参数修改之后,一定要图像控件重新设置布局参数