android学习点点滴滴(二)
来源:互联网 发布:java编写菱形图案 编辑:程序博客网 时间:2024/05/02 00:27
下面是根据书上而写出的一个简单的控制飞机移动的代码:
这是主程序planeGame的源程序:
package com.example.testaction;import android.app.Activity;import android.os.Bundle;import android.util.DisplayMetrics;import android.view.Display;import android.view.KeyEvent;import android.view.View;import android.view.Window;import android.view.WindowManager;public class PlaneGame extends Activity {private int speed=20;//定义飞机的移动速度,可以根据实际需要更改。@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);//实现这个Activity不显示标题,Activity中有这个方法 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//让这个Activity全屏显示,具体方法可查看api final PlaneView planeview=new PlaneView(this);setContentView(planeview);planeview.setBackgroundResource(R.drawable.black);/*//这三行实现用java写的布局文件,个人认为为什么不用XML布局的原因是比较难处理它的位置吧,而用java代码却很方便很容易的把它处理*/WindowManager windowmanager=getWindowManager();Display display=windowmanager.getDefaultDisplay();DisplayMetrics metrics=new DisplayMetrics();display.getMetrics(metrics);planeview.currentX=metrics.widthPixels/2;planeview.currentY=metrics.heightPixels/2;planeview.setOnKeyListener(new View.OnKeyListener() {@Overridepublic boolean onKey(View v, int keyCode, KeyEvent event) {// TODO Auto-generated method stubswitch(event.getKeyCode()){case KeyEvent.KEYCODE_W:planeview.currentY-=speed;break;case KeyEvent.KEYCODE_S:planeview.currentY+=speed;break;case KeyEvent.KEYCODE_A:planeview.currentX-=speed;break;case KeyEvent.KEYCODE_D:planeview.currentX+=speed;}planeview.invalidate();/*一定要这条语句,要不能图片的位置不会刷新。*/return true;}});/*设置键盘监听事件,用w s a d控制上下左右移动。*/}}以下是通过java文件实现的布局文件的代码,
package com.example.testaction;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Paint;import android.view.View;public class PlaneView extends View {public float currentX;public float currentY; Bitmap plane;public PlaneView(Context context) {super(context);// TODO Auto-generated constructor stubplane=BitmapFactory.decodeResource(context.getResources(),R.drawable.plane1);setFocusable(true);}@Overrideprotected void onDraw(Canvas canvas) {// TODO Auto-generated method stubsuper.onDraw(canvas);Paint p=new Paint();canvas.drawBitmap(plane,currentX,currentY,p);} }
0 0
- android学习点点滴滴(二)
- 学习路上的点点滴滴(二)
- android学习总结(持续记录点点滴滴)
- android学习点点滴滴
- android点点滴滴
- 安装gentoo的点点滴滴(二)
- 学习live555的点点滴滴(一)
- 学习scala的点点滴滴(1)
- Android之路的点点滴滴(补发2017.04.05-2017.04.17这一时间段之二【ViewPager自动轮播】)
- 第一个建立的博客,记录学习android的点点滴滴
- 学习Android的点点滴滴--button click事件处理
- HIVE迁移的点点滴滴(二)--rownum分组
- 点点滴滴学习,明白自我
- 学习debian的点点滴滴
- 学习Java的点点滴滴
- 学习的点点滴滴
- ios学习之点点滴滴
- 学习路上的点点滴滴
- C#-截取字符串----ShinePans
- debug G++: Internal Error: Killed (Program Cc1plus)
- python学习小计(五)
- SDUT 1252 - 进制转换
- 今天
- android学习点点滴滴(二)
- 线性表、栈、队列、单链队列、循环队列 内存分配介绍
- hdu的题目分类
- Python实现股票行情接收V010
- 一步步学习微软InfoPath2010和SP2010--第十四章节--高级选项(4)--浏览器和Filler按钮
- SiteMesh3.0的下载,简介与使用
- 动态代理
- LED显示模块
- 构造函数