如何实现如下图像的视图?我想使用Roatation从xml创建视图

时间:2015-08-17 12:02:22

标签: android rotation material

enter image description here

请帮助我已经像屏幕截图2那样查看但是遇到问题就像屏幕截图一样1.是否可以这样做?

旋转视图,感受屏幕。enter image description here

提前致谢。

  <?xml version="1.0" encoding="utf-8"?>
   <RelativeLayout     xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/accent_material_dark"
android:orientation="vertical">

<View
    android:id="@+id/header"
    android:layout_width="wrap_content"
    android:layout_height="120dp"
    android:background="#FFFFFF" />

<View
    android:id="@+id/body"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/header"
    android:rotation="165"
    android:background="@color/accent_material_dark" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@id/header"
    android:layout_alignParentRight="true"
    android:src="@drawable/ic_action_search"
    android:layout_marginBottom="-32dp"
    android:layout_marginRight="20dp">

</android.support.design.widget.FloatingActionButton>

   </RelativeLayout>

1 个答案:

答案 0 :(得分:0)

我应该说,你想要实现的目标最好用背景绘制你想要的形状,而不是试图旋转视图看起来像这样。只需要很多工作和观点来实现微软绘画中的基本知识也能实现的目标。

话虽这么说,为了得到你想要的结果,你只需要将你正在旋转的视图的枢轴点应用到左上角(0,0),并且只向相反方向旋转15度“< / p>

<View
    android:id="@+id/body"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/header"
    android:transformPivotX="0dp"
    android:transformPivotY="0dp"
    android:rotation="-15"
    android:background="@color/accent_material_dark" />

您可能还需要使视图更长一些,因为旋转意味着视图不会延伸到屏幕边缘(由于毕达哥拉斯定理)。你可以通过为视图的宽度应用一个大的dp值,或者通过将视图的scaleX属性设置为1.5或类似的东西来实现这一点。