我在Android中开发的应用程序中遇到了一些问题:
我们正在创建一个支持多个屏幕的应用程序,从三星Galaxy Ace到三星Galaxy Tab 2 10.1,支持小型,中型,大型和X大屏幕,但是,不知何故Android不尊重我的布局 - xxxx文件夹。在Eclipse可视化布局编辑器中,当我更改屏幕时,它会将我移动到正确的文件夹,以表示该布局。但是,在Android,模拟器或真实设备中,其文件夹中的布局不会以正确的方式显示。 我的文件夹结构类似于Android Developer中提到的那些: RES /布局-XXXX RES /值-XXXX
我还读到,自Android Honeycomb以来,有些事情发生了变化,小型,大型,xlarge限定符变得非常具体。所以我们使用layout-swdp创建了文件夹,我们认为这将是带有蜂窝+的设备的解决方案。但是,很快我们意识到这不起作用。 那么,有没有一个确切的方法来做到这一点?要使Android尊重还是强制,这些文件夹? 此外,在Android 2.2中使用Dimens时,应用程序无法启动。它告诉我没有维度0x01。先谢谢你。
答案 0 :(得分:1)
就个人而言,我会为每个布局使用屏幕像素密度(dpi)。
那是:
ldpi: Low-density screens; approximately 120dpi.
mdpi: Medium-density (on traditional HVGA) screens; approximately 160dpi.
hdpi: High-density screens; approximately 240dpi.
xhdpi: Extra high-density screens; approximately 320dpi.
Added in API Level 8
请参阅http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources
答案 1 :(得分:0)
该文件夹应为:
values
>标准手机屏幕
values-sw600dp
> 7“手机/平板电脑屏幕
values-sw720dp
> 10“平板电脑
您必须在这些文件夹中的XML文件中初始化<dimen name="myvariable"></dimen>
并在XML中调用。
示例:
<Button
android:id="@+id/btnHome"
android:layout_width="@dimen/myvariable"
android:layout_height="@dimen/myvariable"
android:text=""
android:background="@drawable/homebutton" />
它会根据屏幕尺寸调整大小。
我正在处理我的应用,确保所有三个屏幕的大小相同。