我正在尝试在只显示谷歌地图的基本应用程序上添加滑动手势。没有地图,它工作正常。这是我没有地图的解决方案:
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;
}
这不是一个真正的“轻扫手势”,但它看起来像。