ImageButtons大小和放置在Eclipse中不起作用

时间:2012-10-12 15:06:56

标签: android eclipse resize imagebutton

问题:  我似乎无法让我的ImageButtons出现在正确的位置或尺寸合适。

THE PLATFORM : 使用Android API 16的Eclipse

问题: 我的RelativeLayout是600x800,我的ImageButtons是194x64,但是当我把它们放在编辑器中时,它们的大小是它们的两倍。请参见图片链接。

enter image description here

我的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:android1="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/main_portal_bg" >

    <RelativeLayout
        android1:layout_width="353dp"
        android1:layout_height="758dp"
        android1:layout_marginLeft="115dp"
        android1:layout_marginTop="29dp"
        android1:background="#000000" >
    </RelativeLayout>

    <ImageButton
        android1:id="@+id/new_customer_button_selector"
        android1:layout_width="194dp"
        android1:layout_height="64dp"
        android1:layout_marginTop="89dp"
        android1:contentDescription="@string/back_button_desc"
        android1:background="@drawable/new_customer_button_selector" />

    <ImageButton
        android1:id="@+id/returning_customer_button_selector"
        android1:layout_width="194dp"
        android1:layout_height="64dp"
        android1:layout_alignParentLeft="true"
        android1:layout_below="@+id/new_customer_button_selector"
        android1:contentDescription="@string/back_button_desc"
        android1:src="@drawable/returning_customer_button_selector" />

    <ImageButton
        android1:id="@+id/redeem_coupon_button_selector"
        android1:layout_width="194dp"
        android1:layout_height="64dp"
        android1:layout_alignParentLeft="true"
        android1:layout_below="@+id/returning_customer_button_selector"
        android1:contentDescription="@string/back_button_desc"
        android1:src="@drawable/redeem_coupon_button_selector" />

    <ImageButton
        android1:id="@+id/info_button_selector"
        android1:layout_width="194dp"
        android1:layout_height="64dp"
        android1:layout_alignParentLeft="true"
        android1:layout_below="@+id/redeem_coupon_button_selector"
        android1:contentDescription="@string/back_button_desc"
        android1:src="@drawable/info_button_selector" />

</RelativeLayout>

研究: 我曾尝试使用FitXY的ScaleType,设置MaxHeight和MinHeight,并使用android:background而不是android:src。我能够使它们变小的唯一方法是使用图形编辑器通过按住SHIFT并拖动右下角来调整它们的大小。不幸的是,这也迫使它们自动对齐到布局的底部,当我尝试移动它们时,它们会快速恢复到原始大小,所有其他按钮都会在布局周围移动。编辑XML只能让我成为那里的一部分。

问题: 每当我尝试在图形编辑器中移动按钮时,所有其他按钮都会以一种看似随机的模式在屏幕周围进行混洗。为什么会这样?

我设置宽度为194dp,高度为64dp。改变这些值什么也不做。为什么这不会影响我的ImageButton的实际宽度和高度?

使用图形编辑器通过按住SHIFT并拖动角来调整按钮大小时,这不会更改XML中的宽度和高度值,只会添加边距。请参阅下面的结果XML:

   <ImageButton
        android1:id="@+id/new_customer_button_selector"
        android1:layout_width="194dp"
        android1:layout_height="64dp"
        android1:layout_alignParentBottom="true"
        android1:layout_alignRight="@+id/returning_customer_button_selector"
        android1:layout_marginBottom="408dp"
        android1:layout_marginRight="86dp"
        android1:layout_marginTop="89dp"
        android1:background="@drawable/new_customer_button_selector"
        android1:contentDescription="@string/back_button_desc" />

这是我的最终目标:

enter image description here

请告诉我如何到达那里。这个简单的事情应该更容易。

1 个答案:

答案 0 :(得分:0)

在阅读developer.android.com/guide/practices/screens_support.html上提供的信息后,我现在了解了4种不同类型的屏幕密度。感谢CaseyB的链接。

在使用我在http://members.ping.de/~sven/dpi.html找到的实用程序后,我计算出的屏幕密度大约为160。

我的问题是AVD Manager创建的默认AVD的LCD密度设置为240(高)。

将其设置为160后,我的项目使用正确尺寸的按钮进行渲染。

我将所有drawables留在drawables文件夹中,因为我正在开发1个屏幕分辨率和密度。如果我决定使用其他平板电脑,那么我可能会使用其他文件夹。

提示:不依赖Eclipse Graphical Editor进行资产调整或调整大小。我不确定它是完全准确的。我使用旧的编辑XML并在尝试调整大小和间距时运行项目方法。