【发布时间】:2009-12-23 09:29:07
【问题描述】:
我们如何针对不同 Android 设备上的不同屏幕调整应用程序的大小?
【问题讨论】:
-
似曾相识!?这里有一个类似的问题:stackoverflow.com/questions/1946480/… 请确保在提问之前进行搜索。
标签: android
我们如何针对不同 Android 设备上的不同屏幕调整应用程序的大小?
【问题讨论】:
标签: android
如果您希望您的布局在不同分辨率的屏幕上工作,您应该使用dip 作为单位来调整它们的大小。例如:
android:layout_marginRight="10dip"
dip 代表 Device Independent Pixel,在您的布局中使用这些像素意味着 Android 将根据运行您的应用程序的设备自动缩放您的布局。
您可以在Supporting Multiple Screens page in the Android Developer Documentation 中了解这些内容。该文档还提供了一些其他选项来处理不同的显示,但我认为使用dip 可能是最简单的。
【讨论】:
是的,正如 Dave 回答的那样,使用“dip”是最好的方法。
另外,有些屏幕的高宽比不同,因此仅使用“dip”是不够的。 那么你有2个选择。如果您总是使用带有“填充父级”的 LinearLayout、RelativeLayout 等布局,您会很好,因为屏幕会变大。 但有时你在某物上设置了一个固定的高度,如果你将它部署在 droid 上(例如)它会看起来很短,因为 droid 比 G1/G2/etc 具有更高的高度/宽度比 在这种情况下,您需要使用代码设置高度。
【讨论】:
使用以下代码在 logcat 中检查屏幕分辨率
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
height = displaymetrics.heightPixels;
width = displaymetrics.widthPixels;
如果屏幕尺寸因此显示为 480x569,则只有屏幕最终可能会被切碎。要解决此问题,您必须更改清单文件中的 minSDK 版本号。
【讨论】: