本文实例讲述了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 axisprivate float yv = 1;// velocity value on the Y axisprivate 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 axispublic void toggleXDirection() {xDirection = xDirection * -1;}// changes the direction on the Y axispublic 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 surfacetry {canvas = this.surfaceHolder.lockCanvas();synchronized (surfaceHolder) {// update game statethis.gamePanel.update();// render state to the screen// draws the canvas on the panelthis.gamePanel.render(canvas);}} finally {// in case of an exception the surface is not left in// an inconsistent stateif (canvas != null) {surfaceHolder.unlockCanvasAndPost(canvas);}}// end finally}}public void update() {// check collision with right wall if heading rightif (droid.getSpeed().getxDirection() == Speed.DIRECTION_RIGHT&& droid.getX() + droid.getBitmap().getWidth() / 2 >= getWidth()) {droid.getSpeed().toggleXDirection();}// check collision with left wall if heading leftif (droid.getSpeed().getxDirection() == Speed.DIRECTION_LEFT&& droid.getX() - droid.getBitmap().getWidth() / 2 <= 0) {droid.getSpeed().toggleXDirection();}// check collision with bottom wall if heading downif (droid.getSpeed().getyDirection() == Speed.DIRECTION_DOWN&& droid.getY() + droid.getBitmap().getHeight() / 2 >= getHeight()) {droid.getSpeed().toggleYDirection();}// check collision with top wall if heading upif (droid.getSpeed().getyDirection() == Speed.DIRECTION_UP&& droid.getY() - droid.getBitmap().getHeight() / 2 <= 0) {droid.getSpeed().toggleYDirection();}// Update the lone droiddroid.update();}
希望本文所述对大家的Android程序设计有所帮助。