android 问题:在一个界面之中,通过手势判断,作出响应!
好比:有很多的学校,班级,同学。在一个界面中单点左右滑动改变同学图片,单点上下滑动是同一个同学不同场景的图片,多点左右滑动改变班级,多点上下滑动改变学校!所有图片数量没有...
好比:有很多的学校,班级,同学。在一个界面中单点左右滑动改变同学图片,单点上下滑动是同一个同学不同场景的图片,多点左右滑动改变班级,多点上下滑动改变学校!所有图片数量没有说明
问题主要是在上下左右滑动改变图片不一样!!多点是其次;“单点左右滑动改变同学图片,单点上下滑动是同一个同学不同场景的图片”是我现在的问题 展开
问题主要是在上下左右滑动改变图片不一样!!多点是其次;“单点左右滑动改变同学图片,单点上下滑动是同一个同学不同场景的图片”是我现在的问题 展开
2个回答
展开全部
不太了解android获取鼠标点的问题
不过可以给你个思路
定义一个action变量
记录触摸点的移动轨迹x1,y1,x2,y2,x3,y3……
判断每两个点之间的向量 如果小于等于45度归于0
大于315小于360 归于0
大于45度小于90归于90 大于90小于135归于90
其它类似
这样没两个点之间就会归于4个向量 上下左右
如果该触摸点始终在0和180度的话 就是在左右滑动 action 赋值1
如果该触摸点始终在90和270度的话 就是在上下滑动 action 赋值2
根据action来做下面的操作
多点类似
数据结构么?
建立一个总Map 存储 学校Id 对应班级Map
allid 存储所有班级ID List
班级Map 存储 班级ID 对应班级同学Map
allId 存储所有班级ID List
同学Map 存储 同学ID 对应同学图片链表
allId 存储所有同学ID List
左右滑动取出链表中的不同图片
上下滑动取出班级map中同学Id
不过可以给你个思路
定义一个action变量
记录触摸点的移动轨迹x1,y1,x2,y2,x3,y3……
判断每两个点之间的向量 如果小于等于45度归于0
大于315小于360 归于0
大于45度小于90归于90 大于90小于135归于90
其它类似
这样没两个点之间就会归于4个向量 上下左右
如果该触摸点始终在0和180度的话 就是在左右滑动 action 赋值1
如果该触摸点始终在90和270度的话 就是在上下滑动 action 赋值2
根据action来做下面的操作
多点类似
数据结构么?
建立一个总Map 存储 学校Id 对应班级Map
allid 存储所有班级ID List
班级Map 存储 班级ID 对应班级同学Map
allId 存储所有班级ID List
同学Map 存储 同学ID 对应同学图片链表
allId 存储所有同学ID List
左右滑动取出链表中的不同图片
上下滑动取出班级map中同学Id
追问
建立一个总Map 存储 学校Id 对应班级Map
allid 存储所有班级ID List
班级Map 存储 班级ID 对应班级同学Map
allId 存储所有班级ID List
同学Map 存储 同学ID 对应同学图片链表
allId 存储所有同学ID List
左右滑动取出链表中的不同图片
上下滑动取出班级map中同 怎么做啊?????????
追答
Map total //总map
List schoolId=(List)total.get("allid");//总map中allid对应所有学校id
Map class=(Map) total.get(schoolId.get(0));//取出第一个学校额的班级map
List classId=(List)class.get("allid");//班级map中allid对应该校所有班级的id
Map student=(Map)class.get(classId.get(0));//取出该学校第一个班级的学生map
List studentId=(List)student.get("allid")//学生map中allid对应该班级所有学生的id
List studentPic=(List)student.get(studentId.get(0))//取出该班级第一个学生的图片List
new Image(studentPic.get(0));//该学生第一张图片
上下滑动 就取出new Image(studentPic.get(1));或者new Image(studentPic.get(studentPic.size()-1));
左右滑动 就改变List studentPic=(List)student.get(studentId.get(1))
List studentPic=(List)student.get(studentId.get(studentId.size()-1))//
最好把上面那些都封装成函数 那样就明了了
展开全部
首先要监听手势 会用到下边两个类
GestureDetector ;
OnGestureListener;
你的界面实现OnGestureListener接口
onFling函数就是就可以解决你的上下 、左右滑动问题了。
onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY)
e1滑动的开始位置
e2 滑动的结束位置
velocityX 是滑动在X轴方向的速度
velocityY 是滑动在Y轴方向的速度
沾一小段代码:
if(e1.getX()-e2.getX()>GameConfig.SWIPE_MIN_DISTANCE&&Math.abs(velocityX) > GameConfig.SWIPE_THRESHOLD_VELOCITY){//e1x大于e2x,向左滑动
//TODO 写你自己的照片滑动
return true;
}else if(e1.getX()-e2.getX()<0-GameConfig.SWIPE_MIN_DISTANCE&&Math.abs(velocityX) > GameConfig.SWIPE_THRESHOLD_VELOCITY){//向右滑动
//TODO 写你自己的照片滑动
return true;
}
GestureDetector ;
OnGestureListener;
你的界面实现OnGestureListener接口
onFling函数就是就可以解决你的上下 、左右滑动问题了。
onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY)
e1滑动的开始位置
e2 滑动的结束位置
velocityX 是滑动在X轴方向的速度
velocityY 是滑动在Y轴方向的速度
沾一小段代码:
if(e1.getX()-e2.getX()>GameConfig.SWIPE_MIN_DISTANCE&&Math.abs(velocityX) > GameConfig.SWIPE_THRESHOLD_VELOCITY){//e1x大于e2x,向左滑动
//TODO 写你自己的照片滑动
return true;
}else if(e1.getX()-e2.getX()<0-GameConfig.SWIPE_MIN_DISTANCE&&Math.abs(velocityX) > GameConfig.SWIPE_THRESHOLD_VELOCITY){//向右滑动
//TODO 写你自己的照片滑动
return true;
}
追问
这个上下左右滑动这个已经做出来了,但是上下滑动和左右滑动图片内容一样!该怎么办呢》?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询