对齐旧的Android版本

时间:2014-12-09 12:50:21

标签: android android-layout

你好,我有一个问题的复选框,在Android 4.3上工作得很好,但不适用于2.2版本这里是图片。问题是复选框元素在旧版本中被包装并对齐到左侧。

working 4.3 version

problematic 2.2 version

The Checkbox is not aligned to center in previous versions and is shifted

这是代码

<?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:gravity="start"
    android:layoutgravity="start" >

    <ImageView
        android:id="@+id/layoutCar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerInParent="true"
        android:contentDescription="@string/car"
        android:padding="16dp"
        android:src="@drawable/damage_car" />

    <CheckBox
        android:id="@+id/CheckBoxRightFront"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignEnd="@+id/layoutCar"
        android:layout_alignRight="@+id/layoutCar"
        android:layout_below="@+id/CheckBoxFront"
        android:layout_centerInParent="true"
        android:layout_marginTop="18dp"
        android:button="@drawable/customcheckbox"
        android:gravity="center"
        android:paddingBottom="16dp"
        android:paddingTop="16dp" />

    <CheckBox
        android:id="@+id/CheckBoxLeftFront"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/CheckBoxRightFront"
        android:layout_alignBottom="@+id/CheckBoxRightFront"
        android:layout_alignEnd="@+id/CheckBoxLeftBD"
        android:layout_alignLeft="@+id/layoutCar"
        android:layout_alignRight="@+id/CheckBoxLeftBD"
        android:layout_alignStart="@+id/layoutCar"
        android:button="@drawable/customcheckbox"
        android:gravity="center"
        android:padding="16dp" />

    <CheckBox
        android:id="@+id/CheckBoxBumper"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/layoutCar"
        android:layout_alignLeft="@+id/layoutCar"
        android:layout_alignStart="@+id/layoutCar"
        android:button="@drawable/customcheckbox"
        android:gravity="center" />

    <CheckBox
        android:id="@+id/CheckBoxBack"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/layoutCar"
        android:layout_alignLeft="@+id/CheckBoxFront"
        android:layout_alignStart="@+id/CheckBoxFront"
        android:button="@drawable/customcheckbox"
        android:gravity="center"
        android:paddingBottom="16dp"
        android:paddingTop="16dp" />

    <CheckBox
        android:id="@+id/CheckBoxRoof"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/CheckBoxBack"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_marginBottom="70dp"
        android:button="@drawable/customcheckbox"
        android:gravity="center_vertical|center_horizontal" />

    <CheckBox
        android:id="@+id/CheckBoxFront"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerInParent="true"
        android:layout_marginTop="12dp"
        android:button="@drawable/customcheckbox" />

    <CheckBox
        android:id="@+id/CheckBoxLeftFD"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/CheckBoxRoof"
        android:layout_alignLeft="@+id/layoutCar"
        android:layout_alignStart="@+id/layoutCar"
        android:button="@drawable/customcheckbox"
        android:gravity="center"
        android:paddingBottom="16dp"
        android:paddingTop="16dp" />

    <CheckBox
        android:id="@+id/CheckBoxLeftBD"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/CheckBoxBack"
        android:layout_alignLeft="@+id/layoutCar"
        android:layout_alignStart="@+id/layoutCar"
        android:layout_toEndOf="@+id/CheckBoxBumper"
        android:layout_toRightOf="@+id/CheckBoxBumper"
        android:button="@drawable/customcheckbox"
        android:paddingBottom="16dp"
        android:paddingTop="16dp" />

    <CheckBox
        android:id="@+id/CheckBoxRightFD"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/CheckBoxRoof"
        android:layout_alignEnd="@+id/layoutCar"
        android:layout_alignLeft="@+id/CheckBoxRightBD"
        android:layout_alignRight="@+id/layoutCar"
        android:layout_alignStart="@+id/CheckBoxRightBD"
        android:button="@drawable/customcheckbox"
        android:padding="16dp" />

    <CheckBox
        android:id="@+id/CheckBoxRightBD"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/CheckBoxLeftBD"
        android:layout_alignBottom="@+id/CheckBoxLeftBD"
        android:layout_alignEnd="@+id/layoutCar"
        android:layout_alignRight="@+id/layoutCar"
        android:button="@drawable/customcheckbox"
        android:paddingBottom="16dp"
        android:paddingTop="16dp" />

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

我想我找到了这个问题的答案,最后它是在不同版本上不同的对象包装,所以我做的是通过编写适合图像大小的宽度来剪切额外的包装并覆盖系统默认的包装方案

android:layout_width="[Image-width-size]dp"

在我的情况下是

android:layout_width="20dp"