Android的事件处理-android学习之旅(四十四)
2015-06-10 17:01
435 查看
androd事件处理简介
控制飞机移动的简单实例
package peng.liu.test; import android.app.ActionBar; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.Display; import android.view.KeyEvent; import android.view.Menu; import android.view.View; import android.view.Window; import android.view.WindowManager; public class MainActivity extends Activity{ int speed = 10; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); final Plane plane = new Plane(this); setContentView(plane); plane.setBackgroundResource(Color.RED); WindowManager manager = getWindowManager(); Display display = manager.getDefaultDisplay(); DisplayMetrics metrics = new DisplayMetrics(); display.getMetrics(metrics); plane.currentX = metrics.widthPixels/2; plane.currentY = metrics.heightPixels-40; plane.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View view, int i, KeyEvent keyEvent) { switch(keyEvent.getKeyCode()){ case KeyEvent.KEYCODE_S: plane.currentY+=speed; break; case KeyEvent.KEYCODE_W: plane.currentY-=speed; break; case KeyEvent.KEYCODE_A: plane.currentX-=speed; break; case KeyEvent.KEYCODE_D: plane.currentX+=speed; break; } plane.invalidate(); return true; } }); } }
package peng.liu.test; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.view.View; /** * Created by lplp on 2015/6/10. */ public class Plane extends View { public float currentX,currentY; public Bitmap plane; public Plane(Context context){ super(context); plane = BitmapFactory.decodeResource(context.getResources(),R.drawable.ic_launcher); setFocusable(true); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint p = new Paint(); canvas.drawBitmap(plane,currentX,currentY,p); } }
相关文章推荐
- Android的事件处理-android学习之旅(四十四)
- Android strings.xml中空格符的标识步骤附xml特殊字符表示法
- Android基础教程之-------Android中两种设置全屏的方法!!!
- android数据存储读取5:Sqlite一些要注意的地方
- Android5.1--APK包的安装、卸载和优化(PackageManagerService)(一)
- 【Android】解决RadioButton+FragmentPagerAdapter+Fragment切换页面数据加载的问题
- Android基础教程(七)之----单选项框RadioGroup的综合应用
- android.os.NetworkOnMainThreadException异常原因
- Android-->RecyclerView的上手教程(模仿画廊效果)
- Android基础教程(六)之----多选项CheckBox的综合应用
- Android Drawable 那些不为人知的高效用法
- Android基础教程(五)之-----Menu功能菜单设计
- android退出整个应用程序
- Android中的“再按一次返回键退出程序”de实现
- Android基础教程(四)之-----取得手机屏幕大小DisplayMetrics的应用
- Android 下拉刷新框架实现
- Android基础教程(三)之-----简单的Button事件响应综合提示控件Toast的应用
- 将Eclipse代码导入到Android Studio的两种方式
- Android基础教程(二)之五大布局对象---FrameLayout,LinearLayout ,AbsoluteLayout,RelativeLayout,TableLayout.
- android多个fragment返回键层层返回