Android布局支持多个屏幕

时间:2016-12-12 13:35:19

标签: android xml

我知道这个问题已被多次回答,但这些答案并没有帮助我。我的应用程序在5英寸屏幕上看起来很完美,但在6英寸以上,对齐方式不同。我也在清单中添加了标签......还设计了布局,布局大,布局正常。 我想知道什么是使布局支持所有屏幕的最佳方法,而不需要为一个屏幕制作3或4个布局。

3 个答案:

答案 0 :(得分:0)

要支持多种分辨率,您可以使用多个布局文件,但使用单个布局文件可以更轻松地进行文件维护和管理。当您需要为不同的分辨率修改部分布局时,最好使用dimens.xml,这样可以很容易地修改。

此链接可以帮助您:

http://developer.samsung.com/technical-doc/view.do;jsessionid=4D620DFCC329BEC0DB60E73C6B185743?v=T000000126

答案 1 :(得分:0)

很抱歉回答而不是评论,但这是因为我的声誉很低,你可以发现这篇文章对Google的开发者很有帮助 https://developer.android.com/guide/practices/screens_support.html,此视频也是如此 https://www.youtube.com/watch?v=GTd7QVv7lzg

答案 2 :(得分:0)

有多种方法可以解决您的问题。

<强> 1 即可。您可以根据屏幕尺寸(如7英寸和7英寸)为相同的布局创建不同的XML,对于大屏幕(我不建议这样做)

一组六个广义密度:

  

ldpi(低)~120dpi       在此处输入代码       mdpi(中)~160dpi       hdpi(高)~240dpi       xhdpi(超高)~320dpi       xxhdpi(extra-extra-high)~480dpi       xxxhdpi(extra-extra-extra-high)~640dpi

在这里阅读(如何创建多个XMLS) - &gt; https://developer.android.com/guide/practices/screens_support.html

2 。根据比率

给出尺寸
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
screenHeight = size.y;
screenWidth = size.x;

现在您拥有该特定设计的screenHeightscreenWidth的值

现在位置布局

例如:如何将视图定位为线性

topLinearLayout = (LinearLayout) inflateView.findViewById(R.id.top_len_one);
            topLinearLayout.setGravity(LinearLayout.HORIZONTAL);
            topLinearLayout.getLayoutParams().width = width;
            topLinearLayout.getLayoutParams().height = 495 * height / 1920;

例如:如何将视图定位为相对

RelativeLayout.LayoutParams relativeLayoutForPassword = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    relativeLayoutForPassword.setMargins(screenWidth * 240 / 1080, screenHeight * 960 / 1920, 20, 0);
    editTextPassword.setLayoutParams(relativeLayoutForPassword); 

// 1080 is my default wire frame's design width , 1920 is height (in pix) 

所以喜欢, 我有一个1920高,1820宽的图像 在我的默认线框的设计高度上创建一个高度为210的布局,并将其大小调整为我的设计屏幕大小 - &gt; 210/1920 *您的设计高度

这可以保持任何屏幕的完美比例