将此动画应用于我的(chield)RelativeLayout后,我的背景图像具有良好的大小,但我的布局似乎继续在我的页面(父级)RelativeLayout上占据很多位置。有些想法?
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true" >
<scale
android:fromXScale="1.0"
android:fromYScale="1.0"
android:toXScale="0.2"
android:toYScale="0.2"
android:duration="700"
>
</scale>
</set>
<RelativeLayout ...>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/chieldLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bigImage"
>
<Button
style="@style/boutonBrun"
android:id="@+id/btPanier"
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/full22lightgreen"
/>
</RelativeLayout>
</RelativeLayout>
我补充说你建议我使用这个命令来调整我的布局:
params.width = (int) getResources().getDimension(R.dimen.size_width);
我怎么知道&#34; size_width&#34;我要放?就像我要求从1.0扩展到0.2并最终放入android:layout_width =&#34; 300dp&#34;,我想象&#34; size_width&#34;必须采用60dp(300 * 0.2),但与动画后的尺寸相比,它非常小。
答案 0 :(得分:0)
使用像这样的动画监听器
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
// set height for your relative layout here
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
答案 1 :(得分:0)
我不确定我是否正确理解您的问题,但您可以为动画添加动画监听器:
yourAnimation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
在onAnimationEnd中尝试使您的视图无效。
yourView.invalidate();
答案 2 :(得分:0)
最后,我只是停止使用param android:fillAfter =“true”,他似乎没有改变布局的大小......我只是用onAnimationEnd改变布局的大小。
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) myRelativeLayout.getLayoutParams();
params.width = (int) getResources().getDimension(R.dimen.little_house_width);
params.height = (int) getResources().getDimension(R.dimen.little_house_height);
setLayoutParams(params);