2017-01-06 153 views
3

我正在研究一个android应用程序,它的设计与数字(边距等)没有相关的东西,所以我想我会发现很多问题与不同的屏幕尺寸,所以我想做一个功能将保持数据DIMENSIONS文件正比于用户的屏幕大小像(User's screen size X dimen)/(the screen size which the app were designed on),所以我想知道这不会造成任何应用程序的工作问题等。处理所有屏幕尺寸android

谢谢=)

+0

没有一个坚实的答案。这真的取决于你的布局,你有可绘制的等等。有时只是缩放会起作用。有时候它不会(缩小时不适合,图像过于伸展等)。小利润率(低双位数的东西,特别是dp)通常很好。 100像素中的数字可能不是。作为Android工程师的工作之一,您可以找出这些相对和线性关联,并从中创建出良好的布局。如果你不需要,你不能指望所有东西都交给你。 –

回答

2

创建三个不同Layouts Folder在您所有设备的res文件夹中,并相应地使用尺寸。

通用布局文件夹

res/layout-small 
res/layout-normal 
res/layout-large 
res/layout-xlarge 

你与制作完成后您的正常/中等布局请按照下列步骤操作:

  1. 转换的普通尺寸的其它屏幕尺寸。
  2. 将您的Normal Layout xml文件复制到其他文件夹中。
  3. 根据你在
  4. 调整在绘制文件夹中的图片资源的文件夹更改使用的尺寸的后缀(宽度和高度 - 同样的方法,我们用于转换梦诗),并把它们在各自的可绘制文件夹(drawable-ldpi,drawable-mdpi,drawable-hdpi,drawable-xdpi等)。
  5. 然后你的布局应该在每个设备上都能正确定位。

对于转换值

0.75 - ldpi (small) //mdpi dimens *0.75 
1.0 - mdpi (normal) //First create these dimensions 
1.5 - hdpi (large) //mdpi dimens *1.5 
2.0 - xhdpi (xLarge) //mdpi dimens *2.0 

对于实施例

android:layout_width="66dip" //in normal 
android:layout_width="100dip"//in large 66*1.5=100(approx) 
android:layout_width="52dip" //in small 66*0.75=52(approx) 

另外新限定符已被引入 - 最小宽度 - AvailableScreenWidth - AvailableScreenHeight

阅读更多关于它https://developer.android.com/guide/practices/screens_support.html

我希望这有助于。

+0

非常感谢您,如果您可以提供帮助,我还有其他问题:以便用户可以通过我的应用上传图片我添加了三个图像并使它们可点击,因此用户点击第一个图标后,图像将上传到图库中, imageview改变颜色,不再可点击(这是应该发生的),但是当我测试它时,我需要做所有这些,再次点击imageview并走出画廊,所以我可以看到我的图像视图改变颜色和不可点击希望你有点谢谢 –

+0

我会很好的帮助,但如果上述问题得到解决,请接受这个答案,对于另一个问题,你需要单独提问,并给我评论中的链接:) – Jayanth

+0

https:// github.com/intuit/sdp正是你所描述的:) –

2

也许你可以尝试下面自动管理所有屏幕尺寸分辨率的库。

compile 'com.intuit.sdp:sdp-android:1.0.4'

您需要只添加您build.gradle文件的依赖和你做。

你需要指定,如:

android:layout_height="@dimen/_10sdp"

相反的:

android:layout_height="@dimen/10sdp"