问题: 我似乎无法让我的ImageButtons出现在正确的位置或尺寸合适。
THE PLATFORM : 使用Android API 16的Eclipse
问题: 我的RelativeLayout是600x800,我的ImageButtons是194x64,但是当我把它们放在编辑器中时,它们的大小是它们的两倍。请参见图片链接。
我的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" />
这是我的最终目标:
请告诉我如何到达那里。这个简单的事情应该更容易。
答案 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并在尝试调整大小和间距时运行项目方法。