首页 > 系统 > Android > 正文

Android实现在屏幕上移动图片的方法

2020-04-11 11:29:46
字体:
来源:转载
供稿:网友

本文实例讲述了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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表