本文实例讲述了Android实现在屏幕上移动图片的方法。分享给大家供大家参考。具体实现方法如下:

1. Speed.java文件:

package net.obviam.droidz.model.components;public class Speed {  public static final int DIRECTION_RIGHT = 1;  public static final int DIRECTION_LEFT = -1;  public static final int DIRECTION_UP  = -1;  public static final int DIRECTION_DOWN = 1;  private float xv = 1;  // velocity value on the X axis  private float yv = 1;  // velocity value on the Y axis  private int xDirection = DIRECTION_RIGHT;  private int yDirection = DIRECTION_DOWN;  public Speed() {    this.xv = 1;    this.yv = 1;  }  public Speed(float xv, float yv) {    this.xv = xv;    this.yv = yv;  }  public float getXv() {    return xv;  }  public void setXv(float xv) {    this.xv = xv;  }  public float getYv() {    return yv;  }  public void setYv(float yv) {    this.yv = yv;  }  public int getxDirection() {    return xDirection;  }  public void setxDirection(int xDirection) {    this.xDirection = xDirection;  }  public int getyDirection() {    return yDirection;  }  public void setyDirection(int yDirection) {    this.yDirection = yDirection;  }  // changes the direction on the X axis  public void toggleXDirection() {    xDirection = xDirection * -1;  }  // changes the direction on the Y axis  public void toggleYDirection() {    yDirection = yDirection * -1;  }}

2. main.java文件:

public void run() {  Canvas canvas;  Log.d(TAG, "Starting game loop");  while (running) {    canvas = null;    // try locking the canvas for exclusive pixel editing    // in the surface    try {      canvas = this.surfaceHolder.lockCanvas();      synchronized (surfaceHolder) {        // update game state        this.gamePanel.update();        // render state to the screen        // draws the canvas on the panel        this.gamePanel.render(canvas);      }    } finally {      // in case of an exception the surface is not left in      // an inconsistent state      if (canvas != null) {        surfaceHolder.unlockCanvasAndPost(canvas);      }    }  // end finally  }}public void update() {  // check collision with right wall if heading right  if (droid.getSpeed().getxDirection() == Speed.DIRECTION_RIGHT      && droid.getX() + droid.getBitmap().getWidth() / 2 >= getWidth()) {    droid.getSpeed().toggleXDirection();  }  // check collision with left wall if heading left  if (droid.getSpeed().getxDirection() == Speed.DIRECTION_LEFT      && droid.getX() - droid.getBitmap().getWidth() / 2 <= 0) {    droid.getSpeed().toggleXDirection();  }  // check collision with bottom wall if heading down  if (droid.getSpeed().getyDirection() == Speed.DIRECTION_DOWN      && droid.getY() + droid.getBitmap().getHeight() / 2 >= getHeight()) {    droid.getSpeed().toggleYDirection();  }  // check collision with top wall if heading up  if (droid.getSpeed().getyDirection() == Speed.DIRECTION_UP      && droid.getY() - droid.getBitmap().getHeight() / 2 <= 0) {    droid.getSpeed().toggleYDirection();  }  // Update the lone droid  droid.update();}

希望本文所述对大家的Android程序设计有所帮助。

更多相关文章

  1. Android(安卓)在 Fragment 中集成 React-Native(RN)步骤
  2. Android实现zip文件压缩及解压缩的方法
  3. React-Native搭建开发环境-Android-Windows
  4. Android(安卓)表单模拟,文件上传!
  5. Android(安卓)分辨率适配方法
  6. Android打开pdf,docx,doc,.xls,xlsx,结尾的文件
  7. Android(安卓)studio中Build.gradle详细配置说明
  8. Android获取手机系统版本等信息的方法
  9. 自定义Dialog UI

随机推荐

  1. Google 给 7.1+ 加了段代码,让你觉得更安
  2. 分析你的第一个 Android(安卓)程序
  3. 初次修改 android app 代码
  4. Android列表选择框Spinner使用方法详解
  5. android相对布局的几组属性
  6. 深入揭发:Android(安卓)的声音延迟
  7. Android系统篇之----Android中的智能指针
  8. android Spinner控件详解
  9. Android为什么卡顿系统原理分析
  10. Android(安卓)TTS学习——总结