我有一个 MapView,我希望有一个动画菜单选项,当用户单击顶部导航栏上的图标时,它会从屏幕左侧滑入并覆盖 MapView。
所需的行为是: 1. 用户单击顶部导航栏上的图标 2. 菜单从左侧滑入,显示具有不同选项的按钮。3. 如果用户选择取消或返回 Mapview,菜单会向右滑出并消失。
在 MapView 之上实现此行为的最佳方法是什么?
我有一个 MapView,我希望有一个动画菜单选项,当用户单击顶部导航栏上的图标时,它会从屏幕左侧滑入并覆盖 MapView。
所需的行为是: 1. 用户单击顶部导航栏上的图标 2. 菜单从左侧滑入,显示具有不同选项的按钮。3. 如果用户选择取消或返回 Mapview,菜单会向右滑出并消失。
在 MapView 之上实现此行为的最佳方法是什么?
首先,您需要在您拥有地图视图的相同 XML 布局中添加按钮:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<view
android:id="@+id/mv"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
class="com.google.android.maps.MapView"
android:apiKey="your key"
android:clickable="true" />
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linear_layout_buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:orientation="vertical"
android:paddingRight="5dp" >
<Button
android:id="@+id/button_overlay_show_zoom_all"
android:layout_width="64dp"
android:layout_height="64dp"
android:paddingBottom="10dp" />
<Button
android:id="@+id/button_overlay_previous"
android:layout_width="64dp"
android:layout_height="64dp"
android:paddingBottom="10dp" />
<Button
android:id="@+id/button_overlay_next"
android:layout_width="64dp"
android:layout_height="64dp"
android:paddingBottom="10dp" />
</LinearLayout>
</RelativeLayout>
然后你需要初始化按钮(我假设你知道这部分)
然后定义动画的方法:
//Buttons Fadein / Fadeout-------------------------------------------------------------------------------
private void buttonFadeOut() {
linear_layout_buttons.startAnimation(AnimationUtils.loadAnimation(MyMapActivity.this, android.R.anim.slide_out_right));
linear_layout_buttons.setVisibility(View.GONE);
}
private void buttonFadeIn() {
if(linear_layout_buttons.getVisibility() == View.GONE){
linear_layout_buttons.startAnimation(AnimationUtils.loadAnimation(MyMapActivity.this, android.R.anim.slide_out_left));
linear_layout_buttons.setVisibility(View.VISIBLE);
}
最后,您只需要在需要的地方调用 buttonFadeIn() 和 ButtonFadeOut() 即可。
祝你好运。