如何为android中的所有分辨率设计应用程序UI

时间:2013-01-29 13:02:36

标签: android user-interface

我正在为我的嵌入式项目开发android应用程序,我对android很新。 我已经开发了UI,它应该适用于android中的所有类型的屏幕(所有分辨率)。

以下是我所有解决方案的代码:

      if ( ((width>=240)&&(width<=320))&&((height>=320)&&(height<=480)) )
    {
        setContentView(R.layout.xsmall_layout);
    }
    else if( ((width>=360)&&(width<=480))&&((height>=640)&&(height<=720)) )
    {
        setContentView(R.layout.small_layout);
    }
    else if ( ((width>=480)&&(width<=540))&&((height>720)&&(height<=960)) )
    {
        setContentView(R.layout.medium_layout);
    }
    else if ( ((width>540)&&(width<=800))&&((height>=1024)&&(height<=1280)) )
    {
        setContentView(R.layout.vlarger_layout);        
    }
    else if ( ((width>800)&&(width<=1080))&&((height>=1280)&&(height<=1920)) )
    {
        setContentView(R.layout.x_vlarger_layout);
    }
    else if ( ((width>=800)&&(width<=1024))&&((height>=480)&&(height<600)) )
    {
        setContentView(R.layout.wlarger_layout);
    }
    else if ( ((width>=1024)&&(width<=1280))&&((height>=600)&&(height<=800)) )
    {
        setContentView(R.layout.x_wlarger_layout);
    }
    else if ( ((width>=1280)&&(width<=2560))&&((height>800)&&(height<=1600)) )
    {
        setContentView(R.layout.xx_wlarger_layout);
    }

它的工作正常,但这是一个好习惯吗? 而在我的电脑(英特尔双核,2GB RAM)中,代码中的最后一个分辨率无效。 我试过1920x1200和2560x1600。 Android模拟器只是没有运行。 只是它即将到来的黑屏。 这是我的PC问题还是什么......? 帮助我前辈......

3 个答案:

答案 0 :(得分:2)

您可以在res文件夹中创建不同的布局文件夹,而不是:

layout-land
layout-large
layout-large-land
layout-xlarge
layout-xlarge-land

在每个文件夹中保持xml布局文件的名称相同,但您可以提及不同的维度值。

无论如何,这是你可以做的测试案例:

  1. 创建文件夹layout-large
  2. 复制main.xml文件并粘贴到layout-large文件夹
  3. 使用一些随机值更改TextView的文本大小。
  4. 在不同密度的模拟器中加载应用程序。享受!!

答案 1 :(得分:1)

请参考以下内容: http://developer.android.com/guide/practices/screens_support.html

在本文档中,他们清楚地解释了所有支持屏幕分辨率和dpi。

答案 2 :(得分:0)

嗨火星尝试这样http://developer.android.com/guide/practices/screens_support.html

他们在res中创建了这些布局文件夹

并将相同的xml文件打包到每个布局:

layout


         layout-small
                        layout-large
                                         layout-xlarge 

这件事会照顾屏幕尺寸。

即桌子,智能手机等