如果可能的话,如何在android中重新创建以下布局?

时间:2014-08-31 18:47:49

标签: android android-layout android-widget

Layout that I am trying to re-create in android

是否有可能重新创建所描绘的布局,如果是,我将如何进行?我已经有按钮的自定义drawables,但对齐,我不能做。我尝试了相对布局,它部分工作,直到我不得不重新安排按钮以获得所需的叠加效果叹息

编辑:AbsolteLayout可以完美地用于此,但不推荐使用。

编辑2:我按正确顺序对按钮进行排序以获得所需的叠加,但是最大按钮(开始)是最后一项,并且每个其他按钮相对于所述开始按钮定位。

显示“没有找到匹配的资源......”错误。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">
  <Button
    android:id="@+id/widButtonOff"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/ignition_button_off"
    android:textSize="@dimen/ignition_button_text_size"
    android:background="@drawable/ignition_button"
    android:layout_alignLeft="@id/widButtonStr"
    android:layout_alignStart="@id/widButtonStr"
    android:layout_alignTop="@id/widButtonStr"
    android:layout_marginLeft="-48dp"
    android:layout_marginStart="-48dp"
    android:layout_marginTop="-12dp"/>

  <Button
    android:id="@+id/widButtonAcc"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="@dimen/ignition_button_text_size"
    android:text="@string/ignition_button_acc"
    android:background="@drawable/ignition_button"
    android:layout_alignLeft="@id/widButtonStr"
    android:layout_alignStart="@id/widButtonStr"
    android:layout_alignTop="@id/widButtonStr"
    android:layout_marginStart="-58dp"
    android:layout_marginLeft="-58dp"
    android:layout_marginTop="36dp"/>

  <Button
    android:id="@+id/widButtonIgn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="@dimen/ignition_button_text_size"
    android:text="@string/ignition_button_ign"
    android:background="@drawable/ignition_button"
    android:layout_alignLeft="@id/widButtonStr"
    android:layout_alignStart="@id/widButtonStr"
    android:layout_alignTop="@id/widButtonStr"
    android:layout_marginStart="-36dp"
    android:layout_marginLeft="-36dp"
    android:layout_marginTop="82dp"/>

  <Button
    android:id="@+id/widButtonLock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="@dimen/ignition_button_text_size"
    android:text="@string/ignition_button_lock"
    android:background="@drawable/ignition_button"
    android:layout_alignLeft="@id/widButtonStr"
    android:layout_alignStart="@id/widButtonStr"
    android:layout_alignTop="@id/widButtonStr"
    android:layout_marginStart="110dp"
    android:layout_marginLeft="110dp"
    android:layout_marginTop="8dp"/>

  <Button
    android:id="@+id/widButtonAbort"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="@dimen/ignition_button_text_size"
    android:text="@string/ignition_button_abort"
    android:background="@drawable/ignition_button"
    android:layout_alignLeft="@id/widButtonStr"
    android:layout_alignStart="@id/widButtonStr"
    android:layout_alignTop="@id/widButtonStr"
    android:layout_marginStart="108dp"
    android:layout_marginLeft="108dp"
    android:layout_marginTop="64dp"/>

  <Button
    android:id="@+id/widButtonStr"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="@dimen/start_button_text_size"
    android:text="@string/ignition_button_start"
    android:background="@drawable/start_button"
    android:layout_centerInParent="true"/>
</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

宾果!

在所需的中心位置添加一个小虚拟按钮,然后将所有按钮相对于虚拟按钮对齐。最后,将大按钮放在虚拟按钮上。

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">

  <Button
    android:id="@+id/dummyWidgetCenterButton"
    android:layout_width="1dp"
    android:layout_height="1dp"
    android:layout_centerInParent="true"/>

  <Button
    android:id="@+id/widButtonOff"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@id/dummyWidgetCenterButton"
    android:layout_alignStart="@id/dummyWidgetCenterButton"
    android:layout_alignTop="@id/dummyWidgetCenterButton"
    android:layout_marginLeft="-102dp"
    android:layout_marginStart="-102dp"
    android:layout_marginTop="-80dp"
    android:background="@drawable/ignition_button"
    android:text="@string/ignition_button_off"
    android:textSize="@dimen/ignition_button_text_size"/>

  <Button
    android:id="@+id/widButtonAcc"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@id/dummyWidgetCenterButton"
    android:layout_alignStart="@id/dummyWidgetCenterButton"
    android:layout_alignTop="@id/dummyWidgetCenterButton"
    android:layout_marginLeft="-122dp"
    android:layout_marginStart="-122dp"
    android:layout_marginTop="-36dp"
    android:background="@drawable/ignition_button"
    android:text="@string/ignition_button_acc"
    android:textSize="@dimen/ignition_button_text_size"/>

  <Button
    android:id="@+id/widButtonIgn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@id/dummyWidgetCenterButton"
    android:layout_alignStart="@id/dummyWidgetCenterButton"
    android:layout_alignTop="@id/dummyWidgetCenterButton"
    android:layout_marginLeft="-108dp"
    android:layout_marginStart="-108dp"
    android:layout_marginTop="12dp"
    android:background="@drawable/ignition_button"
    android:text="@string/ignition_button_ign"
    android:textSize="@dimen/ignition_button_text_size"/>

  <Button
    android:id="@+id/widButtonLock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@id/dummyWidgetCenterButton"
    android:layout_alignStart="@id/dummyWidgetCenterButton"
    android:layout_alignTop="@id/dummyWidgetCenterButton"
    android:layout_marginLeft="48dp"
    android:layout_marginStart="48dp"
    android:layout_marginTop="-54dp"
    android:background="@drawable/ignition_button"
    android:text="@string/ignition_button_lock"
    android:textSize="@dimen/ignition_button_text_size"/>

  <Button
    android:id="@+id/widButtonAbort"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@id/dummyWidgetCenterButton"
    android:layout_alignStart="@id/dummyWidgetCenterButton"
    android:layout_alignTop="@id/dummyWidgetCenterButton"
    android:layout_marginLeft="48dp"
    android:layout_marginStart="48dp"
    android:layout_marginTop="0dp"
    android:background="@drawable/ignition_button"
    android:text="@string/ignition_button_abort"
    android:textSize="@dimen/ignition_button_text_size"/>

  <Button
    android:id="@+id/widButtonStr"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:background="@drawable/start_button"
    android:text="@string/ignition_button_start"
    android:textSize="@dimen/start_button_text_size"/>
</RelativeLayout>