【发布时间】:2016-02-18 10:07:51
【问题描述】:
我正在创建一个类似 app 的朋友追踪器。它由如下描述的动画组成: 当点击marker时,一个从屏幕底部向上滑动的菜单会出现在屏幕的一半上,再次点击marker它会向下滑动。
点击标记时上滑动画图像:
我想要:单击地图上的任意位置时向下滑动菜单。意味着当菜单打开时,我希望它在单击标记或地图上的任何位置向下。 请帮我实现它。
调用标记点击的动画代码:
public void animation(Marker m, LatLng loc) {
Fragment f = getFragmentManager().findFragmentByTag(LIST_FRAGMENT_TAG);
// googleMap.animateCamera(CameraUpdateFactory.zoomTo(10));
googleMap.setMyLocationEnabled(true);
googleMap.getUiSettings().setAllGesturesEnabled(true);
googleMap.getUiSettings().setRotateGesturesEnabled(false);
if (f != null) {
getFragmentManager().popBackStack();
} else {
getFragmentManager()
.beginTransaction()
.setCustomAnimations(R.anim.slide_up,
R.anim.slide_down,
R.anim.slide_up,
R.anim.slide_down)
.add(R.id.list_fragment_container, BaseMapSlidingFragment
.instantiate(this, BaseMapSlidingFragment.class.getName()),
LIST_FRAGMENT_TAG
)
.addToBackStack(null).commit();
googleMap.getUiSettings().setAllGesturesEnabled(false);
}}
动画文件: slide_down.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="yFraction"
android:valueType="floatType"
android:valueFrom="0.58"
android:valueTo="1.0"
android:duration="@android:integer/config_mediumAnimTime"/>
<objectAnimator
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="alpha"
android:valueType="floatType"
android:valueFrom="1"
android:valueTo="0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
slide_up.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="yFraction"
android:valueType="floatType"
android:valueFrom="1.0"
android:valueTo="0.58"
android:duration="@android:integer/config_mediumAnimTime"/>
<objectAnimator
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="alpha"
android:valueType="floatType"
android:valueFrom="0.58"
android:valueTo="1.0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
【问题讨论】:
标签: android android-fragments android-animation google-maps-markers google-maps-android-api-2