setRotationX和pivot point导致奇怪的结果

时间:2014-08-11 10:36:49

标签: android

我想在顶部边框处使用枢轴点翻转视图。所以我正在做的是:

final TextView tvText = Views.find(this, R.id.tvText);
tvText.setPivotX(0);
tvText.setRotationX(45);

视图在x轴上旋转,正如预期的那样。奇怪的是,结果不再是对称的,右边的透视变形比左边强:

rotated image

我希望双方都有偏差,而不仅仅是在右边。 有什么想法吗?

- 编辑 -

这是布局:

<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"
    tools:context=".DrawActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#00F0F0">

    </LinearLayout>

    <TextView
        android:id="@+id/tvText"
        android:text="@string/hello_world"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:background="#FF0F0F"
        android:layout_centerInParent="true" />

    <LinearLayout
        android:id="@+id/ll_touch_surface"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
    </LinearLayout>

</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

你必须使用

tvText.setPivotX(tvText.getWidth()/2);
tvText.setPivotY(0);

用于对称