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程序设计有所帮助。

时间: 2024-09-17 07:50:00

Android实现在屏幕上移动图片的方法的相关文章

Android实现在屏幕上移动图片的方法_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 DIREC

Android编程显示网络上的图片实例详解_Android

本文实例讲述了Android编程显示网络上的图片的方法.分享给大家供大家参考,具体如下: 在Android中显示网络上的图片,需要先根据url找到图片地址,然后把该图片转化成Java的InputStream,然后把该InputStream流转化成BitMap,BitMap可以直接显示在android中的ImageView里.这就是显示网络上图片的思路,实现起来很简单.下面让我们看一下实现起来的过程. 首先在AndroidManifest.xml中给程序加上访问Internet的权限: 复制代码

位置-求组android怎么通过屏幕上的坐标点换算成图片上的坐标点

问题描述 求组android怎么通过屏幕上的坐标点换算成图片上的坐标点 简单说:界面上有一张图片,想实现点击图片不同位置响应不同事件,所以就想说点击屏幕可以获得点击的坐标,然后通过得到的点的坐标然后换算成该点在图片上的坐标.但是把屏幕上得到的点的坐标换算成该点在图片上的坐标值要怎么换算呢?网上搜过说得到图片坐标,分辨率,点击点的坐标就可以换算成该点在图片上的坐标,但是没说怎么换算的问题...求大神解答 解决方案 方法网上其实都说到了,只是具体的要根据你图片显示的布局才能确定. 你要知道: 1 图

Android实现让图片在屏幕上任意移动的方法(拖拽功能)_Android

本文实例讲述了Android实现让图片在屏幕上任意移动的方法.分享给大家供大家参考,具体如下: public class DragExampleActivity extends Activity { Bitmap mBitmap; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInst

imageview-在屏幕上移动图片的问题

问题描述 在屏幕上移动图片的问题 用户想在屏幕上把图像从一个位置移动到另外一个位置,我设置了代码来移动图像,但是问题是如果我移动一个图像,邻近的图像也跟着一起移动.如何只移动一个图像?Main.java public class MainActivity extends Activity { int windowwidth; int windowheight; ImageView ima1ima2; private android.widget.RelativeLayout.LayoutPara

Android实现ListView异步加载图片的方法_Android

本文实例讲述了Android实现ListView异步加载图片的方法.分享给大家供大家参考.具体如下: ListView异步加载图片是非常实用的方法,凡是是要通过网络获取图片资源一般使用这种方法比较好,用户体验好,不用让用户等待下去,下面就说实现方法,先贴上主方法的代码: package cn.wangmeng.test; import java.io.IOException; import java.io.InputStream; import java.lang.ref.SoftReferen

Android实现TextView显示HTML加图片的方法_Android

本文实例讲述了Android实现TextView显示HTML加图片的方法.分享给大家供大家参考,具体如下: TextView显示网络图片,我用android2.3的系统,可以显示图片出来,并且如果图片比较大,应用会卡的现象,肯定是因为使用主线程去获取网络图片造成的,但如果我用android4.0以上的系统运行,则不能显示图片,只显示小方框. 究其原因,是在4.0的系统上执行的时候报错了,异常是:Android.os.NetworkOnMainThreadException 经过查文档,原来是4.

Android编程实现等比例显示图片的方法_Android

本文实例讲述了Android编程实现等比例显示图片的方法.分享给大家供大家参考,具体如下: 在android中,由于密度的影响,如果想得到图片的宽高是不行的,具体为什么我就大概说一下,具体的请搜索度娘或者古哥吧. 原因是如果你把图片放在drawable-mdpi里,而手机是属于drawable-hdpi的话,图片是被自动放大,就这样取到的宽与高未必就是正确的.那么如何让android上面显示的图片是基于原来图片的比例呢,首先你可以在res目录下创建一个drawable-nodpi的目录,这个目录

Android编程实现等比例显示图片的方法

本文实例讲述了Android编程实现等比例显示图片的方法.分享给大家供大家参考,具体如下: 在android中,由于密度的影响,如果想得到图片的宽高是不行的,具体为什么我就大概说一下,具体的请搜索度娘或者古哥吧. 原因是如果你把图片放在drawable-mdpi里,而手机是属于drawable-hdpi的话,图片是被自动放大,就这样取到的宽与高未必就是正确的.那么如何让android上面显示的图片是基于原来图片的比例呢,首先你可以在res目录下创建一个drawable-nodpi的目录,这个目录