我希望我的视图从布局的右下角移动到中心。我在RelativeLayout中只有一个textView,并编写了一个简单的代码来测试它,但是没有用。
这是我的动画XML;
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:toXDelta="50%p"
android:toYDelta="50%p"
android:duration="1000"
android:fillAfter="true" />
这是我的布局文件;
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="x" />
</RelativeLayout>
这是活动的相关部分;
x = (TextView) findViewById(R.id.textView1);
Animation translate = AnimationUtils.loadAnimation(MainActivity.this,
R.anim.viewanimation);
x.startAnimation(translate);
问题是,textView&#34; x&#34;不动。我已经读过在XML文件中指定%p
使它相对于父文件。由于我希望我的视图从原始位置移动到屏幕中心,因此我设置了#34;来自&#34;和&#34;到&#34;值为0%
和50%p
。我观察到,当我删除%p
属性并将其从0%
移动到-100%
时,它会正确移动。所以相对定位似乎在这里不起作用。我可能做错了什么?
答案 0 :(得分:0)
问题解决了。相对值应为负值,如下所示;
android:toXDelta="-50%p"
android:toYDelta="-50%p"
因为正值会将视图移出布局。因此,%0p
值对应于布局的右下角。