Yer*_*ray 0 android android-animation android-xml
我需要帮助来设置RelativeLayout的动画.下一张图片说明了我的用法:

现在,当我触摸地图的标记时,它会显示一个RelativeLayout(在图片中调用标记标题),并且向上滑动的动画效果很好,但是,我向下滑动的代码效果不佳,因为它从顶部开始下降的屏幕.我的代码是这样的:
这是它隐藏RelativeLayout的代码:
public void hideSlideUp() {
RelativeLayout slideLayout;
slideLayout = (RelativeLayout) findViewById(R.id.sliding_up);
if (slideLayout.getVisibility() != View.INVISIBLE) {
Animation slide = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_down);
slideLayout.startAnimation(slide);
slideLayout.setVisibility(View.INVISIBLE);
}
}
Run Code Online (Sandbox Code Playgroud)动画xml文件,现在它的工作有误:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0"
android:fromYDelta="-1000"
android:duration="1000" />
</set>
Run Code Online (Sandbox Code Playgroud)您必须找到一种方法来计算地图的高度并从动画起始位置减少它.这样,动画从其当前位置开始,而不是屏幕顶部.
另一种方法是,这是一个聪明的布局技巧.
下面是一些示例代码,说明如何使用FrameLayout将LinearLayout层叠在Map视图上.您将透明视图权重设置为1,以便在将TextView切换为GONE时,它会扩展以填充空间.要为此更改设置动画,请添加animateLayoutChanges="true"到封闭视图中.
例:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Map
...
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true" >
<View
android:id="@+id/transparentViewThatExpandsWhenTextIsGone"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<TextView
android:id="@+id/textViewToToggle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
</LinearLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)