支持Android中的多个屏幕

时间:2014-08-04 07:14:17

标签: android android-layout screen resolution

我开发了一个Android应用程序,它在我的分辨率为240*320的手机中工作得很好。但如果我安装在另一个移动设备上,如240*400,480*800等等,所有视图组件都会根据屏幕而改变解析度。 我还在layout-smal l,layout-largelayout-xlarge等res下创建了一个子文件夹,此过程也根据屏幕分辨率工作,特定文件夹读取了xml文件。但是这个没有在240*400,240*432等工作..这些类型的屏幕分辨率不受上述程序的支持 我应该怎样做才能使所有视图组件对于所有屏幕尺寸看起来都相同。 谢谢

2 个答案:

答案 0 :(得分:1)

这个东西很难。您可能已经阅读了文档,但您还没有理解它。

基本上,你必须区分两件重要的事情。

  1. 布局(XML)由设备的dp大小决定。忘记解决问题'并考虑设备无关的像素(dp)。如果每英寸有160个点,则设备的dp大小大致等于其大小(以英寸为单位)。所以一个10"平板电脑大约8" x160 = 1280 dp长,而4"手机大约3" x160 = 480 dp长。约。

  2. Drawables(PNG和JPG)由设备的像素分辨率决定。要在320 dpi的设备上生成相同的图标,对于160 dpi的设备,您需要两倍的像素。第一个64x64图标在第二个图标上只有32x32。

  3. 因此,您需要生成一系列XML文件(布局或维度),这些文件可根据所需的dp大小进行缩放,并将它们放在名称为sw600dp(最短宽度为600 dp)和sw320dp的文件夹中。 (搜索SO或网络上的sw600dp,你会发现很多东西要读)。

    您需要生成一系列PNG或JPG文件,这些文件可根据像素分辨率进行缩放,并将它们放在名称为mdpi和hdpi的文件夹中(也可以搜索)。

    很简单,但在实践中很难做好。我们只能希望Android最终能解决这个问题,但现在这就是我们所拥有的。

答案 1 :(得分:1)

首先,请停止使用术语解析。这个词含糊不清。

在Android中,可以很容易地拥有一个具有非常高像素密度的小屏幕和具有非常低像素密度的大型平板电脑的手机,并且在两个设备上所谓的最终分辨率仍然可以最终相等。

  

我已经阅读了很多次并按照那样实现但是阅读   我的问题正确。 - user3851899 3小时前

对不起,但请相信我们,我们已经彻底解析了您的问题。 http://developer.android.com/guide/practices/screens_support.html

您已经提到了“解决方案”这一术语"五次,但在你多次读过的文件中,下面是唯一提到解决方案的部分,即便如此,也要告诉我们你应该直接与之合作分辨率&#34 ;.

  

分辨率

     

屏幕上的物理像素总数。 添加对多个屏幕的支持时,应用程序不起作用   直接解决; 应用程序应该只关注   屏幕尺寸和密度,由通用尺寸和   密度组。

此外,您能算一下该文件中提到的术语密度。它提到 171次!事实是,你已经错过了该文件的主要关键概念。

术语解析对Android开发并不十分有用。尺寸的概念对于占据屏幕的整个宽度或整个高度的大背景图像是重要的,并且对于考虑到屏幕的整个高度或屏幕的整个宽度的布局问题,它是重要的,但它不是很重要。对于在多个屏幕上进行开发(除了缩放字体大小)而言,真正重要的是屏幕的密度

所以我恳请你,请再次阅读document。希望您已经开始理解它,因为我已经重置了您的一些假设。

相关问题