android图片按手势进行移动

问题描述

正在做一个游戏,其中要用到用手滑动一个路线,手抬起后,人物图片按此路线移动过去。请大家提供点思路、、、

解决方案

http://www.yoooo.org/?p=58 这个非常的不错啊····class CustomView1 extends View {private Paint paint;private ArrayList<POINTF> graphics = new ArrayList<POINTF>();private Paint lPaint;private Path mPath;private int of = 0;private Boolean over = false;private float mX, mY;private static final float TOUCH_TOLERANCE = 4;public CustomView1(Context context) {super(context);paint = new Paint(Paint.ANTI_ALIAS_FLAG);paint.setColor(Color.RED);paint.setStrokeJoin(Paint.Join.ROUND);paint.setStrokeCap(Paint.Cap.ROUND);paint.setStrokeWidth(65);lPaint = new Paint(Paint.ANTI_ALIAS_FLAG);lPaint.setColor(Color.BLACK);lPaint.setStyle(Paint.Style.STROKE);// 空心lPaint.setStrokeJoin(Paint.Join.ROUND);lPaint.setStrokeCap(Paint.Cap.ROUND);lPaint.setStrokeWidth(5);mPath = new Path();}@Overridepublic boolean onTouchEvent(MotionEvent event) {float x = event.getX();float y = event.getY();switch (event.getAction()) {case MotionEvent.ACTION_DOWN:over = false;graphics.clear();of = 0;graphics.add(new PointF(x, y));touch_start(x, y);invalidate();break;case MotionEvent.ACTION_MOVE:graphics.add(new PointF(x, y));touch_move(x, y);invalidate();break;case MotionEvent.ACTION_UP:over = true;touch_up();invalidate();break;}return true;}private void touch_start(float x, float y) {mPath.reset();mPath.moveTo(x, y);mX = x;mY = y;}private void touch_move(float x, float y) {float dx = Math.abs(x - mX);float dy = Math.abs(y - mY);if (dx &gt;= TOUCH_TOLERANCE || dy &gt;= TOUCH_TOLERANCE) {mPath.quadTo(mX, mY, (x + mX) / 2, (y + mY) / 2);mX = x;mY = y;}}private void touch_up() {mPath.lineTo(mX, mY);}@Overrideprotected void onDraw(Canvas canvas) {// canvas.drawColor(Color.TRANSPARENT,Mode.CLEAR);canvas.drawColor(Color.WHITE);// 清理canvas.drawPath(mPath, lPaint);if (over &amp;&amp; graphics.size() &gt; 0) {canvas.drawPoint(graphics.get(of).x, graphics.get(of).y, paint);of += 1;if (of &lt; graphics.size()) {if (of == graphics.size() - 1) {mPath.reset();// 移动完成后移除线条}invalidate();}}} }
解决方案二:
提供你一个思路。用一个数组保存手势经过的x,y(began和move事件),当手抬起来后(end),再让精灵图片的坐标按照数组里的值依次改变即可

时间: 2024-12-08 19:10:07

android图片按手势进行移动的相关文章

Android实现通过手势控制图片大小缩放的方法_Android

本文实例讲述了Android实现通过手势控制图片大小缩放的方法.分享给大家供大家参考,具体如下: 该程序实现的是通过手势来缩放图片,从左向右挥动图片时图片被放大,从右向左挥动图片时图片被缩小,挥动速度越快,缩放比越大.程序思路如下:在界面中定义一个ImageView来显示图片,使用一个GestureDetector来检测用户的手势,并根据用户的手势在横向的速度来缩放图片. 在介绍这个实例前,先介绍一下Android中处理手势触摸事件的大概框架. 一.添加语句实现OnGestureListener

Android ImageView随手势变化动态缩放图片_Android

在Android实际项目开发中,经常要用到ImageView这个组件,如果纯粹只是用来显示某一张图片,这个原生的组件是很方便的.但有时候为了效果更炫一点,比如很多软件都有的对图片的处理,随着手势的变化来拉大或缩小图片,这时就需要对原生的ImageView做一些处理来达到我们想要的效果. 原理就是Matrix 和PointF的运用,其实明白后一点都不难.我们需要写一个类继承ImageView来实现我们想要的功能,我这里演示的是类名是:ScaleImageView ,主要是重写onTouchEven

Android实现通过手势控制图片大小缩放的方法

本文实例讲述了Android实现通过手势控制图片大小缩放的方法.分享给大家供大家参考,具体如下: 该程序实现的是通过手势来缩放图片,从左向右挥动图片时图片被放大,从右向左挥动图片时图片被缩小,挥动速度越快,缩放比越大.程序思路如下:在界面中定义一个ImageView来显示图片,使用一个GestureDetector来检测用户的手势,并根据用户的手势在横向的速度来缩放图片. 在介绍这个实例前,先介绍一下Android中处理手势触摸事件的大概框架. 一.添加语句实现OnGestureListener

Android图片处理-----ScaleGestureDetector(缩放手势检测)

http://www.cnblogs.com/lknlfy/archive/2012/03/11/2390274.html Android实现渐显按钮的左右滑动效果 http://www.cnblogs.com/hanyonglu/archive/2012/02/13/2350171.html Android实现图片缩放与旋转 http://www.cnblogs.com/hanyonglu/archive/2012/02/11/2346273.html 用gallery展示图片,实现中间图片稍

Android 图片轮播实现及获取Android的资源信息

在手机app应用中我们经常会看到图片轮播动画效果,Android中想要实现图片轮播,主要用到ViewPager这个控件来实现,这个控件的主要功能是实现图片的滑动效果. 那么有了滑动,在滑动的基础上附上图片也就实现了图片轮播的效果...这个控件类似于ListView,需要使用到适配器这个东西,适配器在这里的作用是为轮播时设置一些效果...这里需要使用到PagerAdapter适配器...下面来一个例子,这个例子的效果是在图片轮播的同时显示播放的是第几张图片的信息...并且下面的点也是会随之进行变化

Android自定义UI手势密码改进版源码下载_Android

在之前文章的铺垫下,再为大家分享一篇:Android手势密码,附源码下载,不要错过. 源码下载:http://xiazai.jb51.net/201610/yuanma/androidLock(jb51.net).rar 先看第一张图片的布局文件 activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://sc

Android 图片缩放实例详解_Android

本文实现Android中的图片的缩放效果 首先设计布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_par

Android自定义UI手势密码简单版_Android

先看看效果图: ImageLockActivity package com.example.imagelock; import com.example.view.NinePointLineView; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; public class ImageLockActivity extends Acti

Android自定义UI手势密码改进版源码下载

在之前文章的铺垫下,再为大家分享一篇:Android手势密码,附源码下载,不要错过. 源码下载:http://xiazai.jb51.net/201610/yuanma/androidLock(jb51.net).rar 先看第一张图片的布局文件 activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://sc