`
- 浏览:
622842 次
- 性别:
- 来自:
上海
-
Android中提供了判断手势的接口,所有我们可以根据提供的API来实现各种各样的手势功能来提高手机应用的用户体验。(此段代码非常给力,O(∩_∩)O哈哈~)
下面是我写的一段小Demo:
GestureActivity.java
public class GestureActivity extends Activity {
private GestureDetector gestureDetector;
private Screen screen;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gestureDetector = new GestureDetector(this,onGestureListener);
//得到屏幕的大小
screen = GestureUtils.getScreenPix(this);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
GestureDetector.OnGestureListener onGestureListener = new GestureDetector.SimpleOnGestureListener(){
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
float x = e2.getX() - e1.getX();
float y = e2.getY() - e1.getY();
//限制必须得划过屏幕的1/3才能算划过
float x_limit = screen.widthPixels / 3;
float y_limit = screen.heightPixels / 3;
float x_abs = Math.abs(x);
float y_abs = Math.abs(y);
if(x_abs >= y_abs){
//gesture left or right
if(x > x_limit || x < -x_limit){
if(x>0){
//right
show("right");
}else{
//left
show("left");
}
}
}else{
//gesture down or up
if(y > y_limit || y < -y_limit){
if(y>0){
//down
show("down");
}else{
//up
show("up");
}
}
}
return true;
}
};
private void show(String value){
Toast.makeText(this, value, Toast.LENGTH_SHORT).show();
}
}
GestureUtils.java
public class GestureUtils {
//获取屏幕的大小
public static Screen getScreenPix(Context context) {
DisplayMetrics dm = new DisplayMetrics();
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getMetrics(dm);
return new Screen(dm.widthPixels,dm.heightPixels);
}
public static class Screen{
public int widthPixels;
public int heightPixels;
public Screen(){
}
public Screen(int widthPixels,int heightPixels){
this.widthPixels=widthPixels;
this.heightPixels=heightPixels;
}
@Override
public String toString() {
return "("+widthPixels+","+heightPixels+")";
}
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
我们可以通过比较MotionEvent的X和Y坐标与屏幕尺寸的比例,划分出屏幕的上、下、左、右和中心区域。例如,如果坐标位于屏幕高度的前25%部分,我们可以认为是上区域;高度的后25%是下区域,以此类推。当用户在特定...
在Android开发中,触摸事件是用户与应用交互的重要方式,特别是在移动设备上。`onTouchEvent`是处理触摸事件的主要方法,它可以捕捉用户的点击、滑动等手势。本篇将详细讲解如何通过重写`onTouchEvent`来实现上下...
至此,我们就完成了基于Android手势检测的左右滑动查看图片的功能。通过这个示例项目`OnFlingDemo`,你可以更深入地理解如何将这些知识点应用到实际的开发中。记得在实际项目中根据需求调整代码,例如添加图片的加载...
Android的`MotionEvent`类提供了对触摸事件的封装,我们可以通过`ACTION_DOWN`、`ACTION_MOVE`和`ACTION_UP`等常量来判断用户的滑动行为。在`onTouchEvent()`方法中,我们需要记录下初始触摸位置,然后在`ACTION_...
反之,如果velocityX为负,说明是从右向左滑动,可以启动上一个Activity。启动新Activity时,通常会使用 `startActivity()` 方法,同时可能需要使用 `finish()` 来关闭当前Activity,以实现平滑的过渡效果。 为了...
在iOS和Android平台上,系统都提供了丰富的API供开发者实现各种手势识别。 1. iOS平台:苹果的UIKit框架提供了`UIPanGestureRecognizer`类,用于识别平移(panning)手势。开发者可以通过添加手势识别器到视图上,...
在标题“Android封装自定义ViewPager实现左右无限切换和手势滑动效果1”和描述“Android封装自定义ViewPager实现左右自动无限切换和手势滑动效果1”中,我们主要探讨的是如何对原生的ViewPager进行扩展,以实现无限...
在Android操作系统中,桌面是用户与系统交互的主要入口,它由一系列可以左右滑动的屏幕组成,这种设计大大增强了用户体验,使得用户能够方便地访问和管理应用程序。标题"android桌面,支持左右滑动"所涉及的核心技术...
完成以上步骤后,务必在多种设备和Android版本上进行充分的测试,确保滑动功能的稳定性和用户体验。 通过这些步骤,你可以为Android应用程序实现一个具备左右滑动切换月份功能的日历视图。这种交互方式不仅使得...
总结,实现Android手势翻页效果涉及到手势检测、动画设计、视图管理、物理模拟等多个方面。通过合理的代码组织和性能优化,我们可以创建出流畅、逼真的翻页效果,提升应用的用户体验。在实际项目中,可以参考开源库...
总之,封装自定义ViewPager实现左右自动切换和手势滑动效果是Android开发中的一个实用技巧。通过深入理解ViewPager的工作原理,结合定时器、手势识别和动画效果,我们可以为用户提供更加流畅和个性化的交互体验。这...
这涉及到Android手势识别、触摸事件处理以及ListView的自定义行为。 1. **Android手势识别**: Android提供了多种方式来实现手势识别,如`GestureDetector`、`ScaleGestureDetector`和`SwipeRefreshLayout`等。在...
如果滑动的方向是从左到右,那么可以执行右滑动画,反之亦然。 四、滑动动画的实现 滑动动画是 Android 手势左右滑动效果的核心 часть。在实现滑动动画时,需要使用 Animation 或 Animator 来实现滑动动画。...
标题中的“android GestureDetector依赖onTouchEvent判断左右滑动”指的是通过`GestureDetector`监听`MotionEvent`的`ACTION_DOWN`, `ACTION_MOVE`和`ACTION_UP`事件,来实现手指在屏幕上左右滑动的识别。...
可以使用Android的`MotionEvent`类,通过比较连续的`ACTION_DOWN`和`ACTION_UP`事件之间的Y坐标差来判断是上滑还是下滑。 - 如果Y坐标差满足一定的阈值,表示用户进行了上滑或下滑操作,此时可以调用`...
总的来说,"【Android】自定义左右滑动菜单"项目涵盖了Android UI设计、手势识别、动画实现和自定义组件等多个核心知识点。通过学习和实践这个项目,开发者不仅可以掌握创建滑动菜单的技巧,还能加深对Android系统...
在Android开发中,手势识别是增强...总的来说,实现Android手势滑动翻页需要理解手势事件机制,掌握`GestureDetector`的使用,并结合适当的UI组件和动画效果。通过实践和优化,可以创造出流畅且富有特色的翻页体验。
在左右滑动视图的实现中,我们需要监听MotionEvent.ACTION_DOWN(手指按下)、ACTION_MOVE(手指移动)和ACTION_UP(手指抬起)等事件,根据手指移动的方向和距离判断是否触发滑动操作。 5. 动画效果: 为了提升...
在Android开发中,屏幕...通过这个示例,开发者可以学习到手势识别的基本原理和实践技巧,提升Android应用的交互体验。在实际项目中,开发者可以根据需要调整滑动阈值,优化滑动的灵敏度,从而实现更流畅的用户界面。