我正在开发自己的应用程序半专业已经有一段时间了,但这总是我从来没有真正知道正确答案的地方:
众所周知,不同的手机有不同的屏幕。几乎所有Android手机的比例都是16比9。 (除了精彩的s8 ......)。
现在我常常遇到有关设计的问题,但我找到了一种方法,使设计在每个16:9甚至21.5:9的屏幕上看起来都是100%相同。
我基本上做的是在xxxhdpi画布上的photoshop中进行设计:
2560 x 1440,密度为577。
我渲染我的按钮并使用批处理转换器将每个按钮(可绘制)转换为5种不同的尺寸:
xxxhdpi = 100 % ( the size of the original )
xxhdpi = 75 %
xhdpi = 50 %
hdpi = 37.5 %
mdpi = 25 %.
然后我在我的android项目中放了5个不同的文件夹,命名为:
"drawable-xxxhdpi"
"drawable-xxhdpi"
"drawable-xhdpi"
"drawable-hdpi"
"drawable-mdpi"
我将drawables插入正确的文件夹并开始设计。
我尝试始终使用linearlayout,然后使用android:layout_weights来确定屏幕上的位置。
权重的工作方式与百分比一样,所以说我在我的根布局中设置了两个线性布局,两者都正好重50。它们恰好填满了每台设备的一半屏幕。
只要您可以使用线性布局,这对所有设备都非常有效。
如果我需要使用framelayout,那么我会进入我的类的代码并初始化每个不能有权重的元素。特别是当它归结为填充:
我为问题提出了一个新的linearlayout.layoutparams for the witdh和height go“resources.dimensions.displaymetrics.height / width像素,并用硬编码的数字划分。
由于显示指标与实际手机相对应,因此即使使用了帧布局,分割也将以百分比结束。边距或填充也是如此。
结果完美无瑕。无论使用什么手机,当它的比例为16:9时,设计总是看起来一样。即使在Scrollviews,Relative-Layouts等也是如此。
对于具有不同宽高比的手机,我通过除以hightpixels / widthpixels来设置比率,这样设计在这些屏幕上也能正常工作。
结果在很多工作中结束,但完美的设计。 我拒绝在我的轴上使用“dpi”,因为它们可以正常工作但在每部手机上看起来都不一样。
现在 - 问题:
设计应用程序的完美方式是什么,只有最少量但是专业的结果?
你们怎么做才能把它搞定?我希望有一些有意义的投入和交流!谢谢:))
答案 0 :(得分:1)
您有两种选择。
使用google提供的不同屏幕尺寸手机的不同布局。
您可以使用DisplayMetrics计算视图项的宽度和高度。但是你必须在运行时这样做。
或者您可以同时使用两者以获得最佳效果。