2014-08-31 49 views
3

Layout that I am trying to re-create in android如果可能,我如何在android中重新创建以下布局?

是否有可能重新创建布局图,如果有的话,我会怎么做呢?我已经为按钮设置了自定义的drawable,但是对齐,我无法做到。我已尝试相对布局,它部分工作,直到我不得不重新安排所需的覆盖效果的按钮叹息

编辑: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> 

回答

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> 
+1

你也可以设置按钮的宽度和高度为0(更少的计算并提高了精度),并设置其可见性为不可见,因此将跳过的onDraw电话。在http://stackoverflow.com/questions/4961355/percentage-width-in-a-relativelayout/7784186#7784186发现这一切,我认为这是你检查的同一页 – chjarder 2014-09-01 07:35:34

+0

@chjarder谢谢。 – 2014-09-01 16:37:10