如何设计所有设备分辨率

时间:2011-04-21 16:27:52

标签: android

大家好 我必须使用线性布局与所有分辨率类型的设备,如480x800,480x854,320x480。 我在设计320x480时使用x,y位置将元素放置在线性布局中。我必须为其他分辨率设备重新设计,因此需要更多时间。请给出线性布局的所有分辨率的通用方法。提前致谢。

4 个答案:

答案 0 :(得分:2)

您可以为不同的屏幕类别定义不同的布局。因此,您可以调整布局,使其适合实际屏幕。这里有一个描述如何完成此操作的好资源:

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

答案 1 :(得分:2)

请勿针对特定分辨率进行设计。使用layout_weight属性,layout_widthlayout_height wrap_contentmatch_parent值的组合来获得不同的比例宽度,具体取决于屏幕尺寸,而不是硬编码像素值。

例如,假设您要在屏幕顶部添加一行四个按钮,每个按钮占据相同的宽度,从左上角偏移约5个像素:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="5dp"
    android:gravity="top"
    android:orientation="horizontal"
    >
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"       
        android:text="Button 1"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"       
        android:text="Button 2"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"       
        android:text="Button 3"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"       
        android:text="Button 4"
        />
</LinearLayout>

这将为您提供任何屏幕密度的可靠结果,您永远不必担心某个像素值。用于填充的dp(与设备无关的像素)的使用也会根据密度略有变化,因此无论分辨率如何,它都保持一致的物理尺寸。

阅读Android Developers site关于LinearLayouts,FrameLayouts和RelativeLayouts的示例。你会很好地了解每个人的利益,以及他们的优点和缺点。

答案 2 :(得分:1)

在布局中使用与密度无关的像素(dp)是个好主意。我认为这可能会有所帮助:http://developer.android.com/guide/practices/screens_support.html

答案 3 :(得分:0)

非常优秀的答案......我相信很多个人和商家都认为Android是一个“设备”而不清楚地理解Android是一个“操作系统”。为了正确显示运行Android操作系统的所有设备的图像,必须选择支持多个设备并根据Android操作系统开发,而不是运行Android操作系统的某个设备。之前我遇到过这个问题,我的Boss(当时)说“你的测试设备需要什么尺寸的图像?我说”只是给我一些图像!我被迫使用320x480图像(根据测试设备)当区域经理在他的ThinkPad(以及其他4个设备)上看到演示产品时,我被终止了,因为我的主管认为Android是设备而不是操作系统......公司的Android App还没有完成。我的意见认为“支持多个设备正在为通用Android操作系统开发,而正在开发根据”分辨率“适用于某种设备或类型的设备。