在谷歌地图android上滑动手势

时间:2014-03-05 12:28:26

标签: android google-maps swipe gesture

我正在尝试在只显示谷歌地图的基本应用程序上添加滑动手势。没有地图,它工作正常。这是我没有地图的解决方案:

private float x1,x2;
static final int MIN_DISTANCE = 150;
private Point pt;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    pt = new Point();
    getWindowManager().getDefaultDisplay().getSize(pt);
}

@Override
public boolean onTouchEvent(MotionEvent event)
{     
    switch(event.getAction())
    {
      case MotionEvent.ACTION_DOWN:
          if(event.getX()>pt.x-5){
              x1 = event.getX();  
              Log.d("DEBUUUUG", ""+event.getX());
          }else{
              x1=0;
          }
      break;         
      case MotionEvent.ACTION_UP:
          if(x1>=pt.x-5){
              x2 = event.getX();
              Log.d("DEBUUUUG", "X1="+x1+" X2="+x2);
              float deltaX = x2 - x1;
              if (Math.abs(deltaX) > MIN_DISTANCE)
              {
                  Toast.makeText(this, "swipe", Toast.LENGTH_SHORT).show ();
              }
          }
      break;   
    }           
    return super.onTouchEvent(event);    
}  

这是我的xml布局与地图(布局没有一个简单的LinearLayout谁是空的):

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapSee"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />

我的目标是添加一个从右到左的滑块,就像在GoogleMaps应用上一样。 有可能吗?

感谢。

修改 完成后,我找到了解决方案。我不认为这是最好的方法,但它有效。 我添加了一个隐形按钮:     

    <Button
        android:id="@+id/btn_slideMenuCM"
        android:layout_width="1dp"
        android:layout_height="match_parent"
        android:layout_alignParentRight="true"
        android:background="@android:color/transparent"/>
</RelativeLayout>

我在这个按钮上实现了一个TouchListener:

@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:
    //The action to do
        break;
}
return false;
}

这不是一个真正的“轻扫手势”,但它看起来像。

0 个答案:

没有答案
相关问题