例如,我们有像素。但是,像素不是恒定的。我想高分辨率的安卓屏幕会有更多的像素。
然后我们有密度,这似乎没有多大帮助。它不像像素那么精确,也不是恒定的。高分辨率将具有大量“密度”
我们是否有大约 10% 的屏幕尺寸。程序员这样做是否普遍?
例如,我们有像素。但是,像素不是恒定的。我想高分辨率的安卓屏幕会有更多的像素。
然后我们有密度,这似乎没有多大帮助。它不像像素那么精确,也不是恒定的。高分辨率将具有大量“密度”
我们是否有大约 10% 的屏幕尺寸。程序员这样做是否普遍?
从不(或几乎从不)使用绝对像素。
如果您想处理屏幕布局的百分比,请使用layout_weight
.
以下精简的 XML 布局文件显示了一个LinearLayout
包含两个TextView
小部件的垂直布局,每个小部件都包含在自己的LinearLayouts
. 内部LinearLayouts
将其高度设置为,0dp
但“权重”(0.9 + 0.1)的“总和”等于 1,因此第一个内部 LinearLayout
自动扩展到屏幕高度的 90%,而第二个得到 10%。
您使用的数字无关紧要……它们可以是 9 和 1 或 90 和 10 或 900 和 100 ……归结为总和以及每个代表的百分比。布局膨胀过程将完成其余的工作,您无需了解绝对像素。
<LinearLayout
android:orientation="vertical"
... >
<LinearLayout
...
android:layout_height="0dp"
android:layout_weight="0.9" >
<Textview
... >
</LinearLayout>
<LinearLayout
...
android:layout_height="0dp"
android:layout_weight="0.1" >
<Textview
... >
</LinearLayout>
</LinearLayout>
答案是否定的,你没有那个。但是您可以制作自己喜欢的屏幕百分比。您将无法在 xml 中使用它,但您可以从代码中动态设置它。以下方法可用于获取屏幕的高度和宽度:
public static int getScreenHeight(Context context) {
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
return(metrics.heightPixels);
}
public static int getScreenWidth(Context context) {
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
return(metrics.widthPixels);
}
据我所知,没有这样的事情。
但是您可以使用自己的代码实现相同的功能。获取显示的宽度和高度,然后在设置布局参数之前对它们进行自己的操作。
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
yourLinearLayout.setLayoutParams(new LinearLayout.LayoutParams(
(width/2), height/4)); // assuming that you want 50% width n 25% height of the display.