软件编程
位置:首页>> 软件编程>> Android编程>> Android实现在屏幕上移动图片的方法

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

作者:红薯  发布时间:2022-06-03 01:40:26 

标签:Android,屏幕,图片

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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com