处理所有屏幕尺寸android

时间:2017-01-06 03:50:49

标签: android dimensions screen-size

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

谢谢=)

3 个答案:

答案 0 :(得分:3)

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. 然后,您的布局应该能够在每个设备上正确定位。
  6. 用于转换值

    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

    我希望这会有所帮助。

答案 1 :(得分:2)

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

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

您只需在build.gradle文件中添加依赖项即可完成。

您需要指定:

android:layout_height="@dimen/_10sdp"

而不是:

android:layout_height="@dimen/10sdp"

答案 2 :(得分:0)

//Dimen
implementation 'com.intuit.ssp:ssp-android:1.0.5'
implementation 'com.intuit.sdp:sdp-android:1.0.5'

使用这两个库, ssp用于文本大小,sdp用于页边距,填充和布局大小

android:layout_width="@dimen/_24sdp"
android:layout_height="@dimen/_24sdp"