-1

我正在寻找修复我在 android 上的多个屏幕尺寸的布局的最佳途径。我有一个很棒的应用程序,几乎可以发布了。但是我的一个合作伙伴在三星平板电脑上尝试了它,图标和一些功能太小了

所以我在想我是在屏幕尺寸上改变分辨率还是有更简单的方法?

这是我的布局代码任何建议会有帮助吗?


    <?xml version="1.0" encoding="utf-8"?>
<merge xmlns:tools="http://schemas.android.com/tools"
xmlns:pj="http://schemas.android.com/apk/res/com.example.waysecure"
xmlns:bm="com.example.waysecure"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"     xmlns:android="http://schemas.android.com/apk/res/android">
<Button
    android:id="@+id/button_pannic"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/pannic"
    android:visibility="visible" />
<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="bottom"
    android:layout_marginTop="50dp" >
    <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <FrameLayout
        android:id="@+id/Fofo"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </FrameLayout>
    </RelativeLayout>
 <SlidingDrawer
 android:id="@+id/sg_below"
 android:layout_width="match_parent"
 android:layout_height="275dp"
 android:layout_gravity="bottom"
 android:layout_marginTop="200dp"
 android:content="@+id/content"
 android:handle="@+id/handle" >
<Button android:layout_width="match_parent" android:layout_height="60dp" android:id="@+id/handle" android:background="@drawable/tray_handle_normal" />
<RelativeLayout
    android:id="@+id/content2"
    android:layout_width="wrap_content"
    android:layout_height="282dp"
    android:background="#aa000000" >
        </RelativeLayout><TabHost  android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent">
   <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="bottom"
            android:background="#aa000000" >
 <LinearLayout android:id="@+id/tab1" android:layout_width="match_parent" android:layout_height="match_parent">


            </LinearLayout>
              <GridView
                  android:id="@+id/tab2"
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:layout_gravity="bottom"
                  android:columnWidth="90dp"
                  android:gravity="center"
                  android:horizontalSpacing="1dp"
                  android:numColumns="auto_fit"
                  android:stretchMode="columnWidth"
                  android:verticalSpacing="1dp" > 
            </GridView>  <LinearLayout android:id="@+id/tab3" android:layout_width="match_parent" android:layout_height="match_parent">
                  <com.carouseldemo.controls.Carousel android:id="@+id/carousel2" android:layout_width="match_parent" android:layout_height="match_parent" android:animationDuration="200" pj:Items="@array/entries" pj:Names="@array/names" pj:SelectedItem="0" pj:UseReflection="true">
                </com.carouseldemo.controls.Carousel>  
            </LinearLayout>
        </FrameLayout>
    <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="top" >
        </TabWidget>
    </TabHost>
</SlidingDrawer>
</merge>
4

5 回答 5

4

您需要在 res 文件夹中为不同的屏幕放置额外的布局。

如果您想7 inch以 res 名称创建布局文件夹为layout-sw720dp

对于10 inch创建layout-xlarge

从文件夹中复制所有文件layout并粘贴文件并调整大小。

使用所有屏幕进行转换和测试。

请参阅链接以获取更多屏幕

http://developer.android.com/guide/practices/screens_support.html

于 2013-02-28T07:07:11.913 回答
2

您唯一需要做的就是<support-screens> 在您的manifest和下面 添加<support-screens>

 <supports-screens android:resizeable=["true"| "false"]
              android:smallScreens=["true" | "false"]
              android:normalScreens=["true" | "false"]
              android:largeScreens=["true" | "false"]
              android:xlargeScreens=["true" | "false"]
              android:anyDensity=["true" | "false"]
              android:compatibleWidthLimitDp="integer"
              android:largestWidthLimitDp="integer"/>

创建一致布局的提示:

  1. 不要硬编码任何layout参数,例如widthheight等。
  2. 不要使用“ px” 。使用“ sp”作为文本大小,使用“ dp”作为layout-widthlayout-height
  3. 使用RelativeLayoutLinearLayout不使用AbsoluteLayout,因为它已被弃用。
  4. ScrollView在需要的地方使用,因为layouts它支持单视图。

有关更多信息,请查看Support Multiple Screens的 Android 开发人员文档。

于 2013-02-28T07:04:55.957 回答
2

我为此配置了一种方法。对我来说,这是一种打击和尝试的方法。当我开发我的第一个 android 应用程序时,同样的问题也发生在我身上,但最后,我成功了。为了完美支持每一个屏幕分辨率,在全屏图像的情况下,制作4张不同分辨率的图像:

hdpi: 480*800
ldpi: 320*460
mdpi:720*960
xhdpi: 800*1280

如果您的应用支持两种方向,则为横向模式制作不同的布局,并将其放置在 layout-land 中具有相同的名称,相关信息可以在此链接上找到。

于 2013-02-28T07:20:09.623 回答
1

您必须在 res 文件夹中创建 layout_size 文件夹

为不同尺寸的屏幕创建不同的 xml 文件。

于 2013-02-28T07:24:35.730 回答
0

请参考这个..它可能对你有帮助..fend设备屏幕和分辨率

于 2013-07-04T12:48:10.580 回答