如果我想在 Java 中以编程方式设置 ImageView 的宽度/高度,如下所示:
image_view.getLayoutParams().width = 200;
那些“200”的单位是什么?是 px/dp 吗?
它在每台设备上看起来“都一样”吗?(这意味着:它在平板电脑上非常大而在智能手机上完全小吗?)
如果我想在 Java 中以编程方式设置 ImageView 的宽度/高度,如下所示:
image_view.getLayoutParams().width = 200;
那些“200”的单位是什么?是 px/dp 吗?
它在每台设备上看起来“都一样”吗?(这意味着:它在平板电脑上非常大而在智能手机上完全小吗?)
它以像素为单位。但是要独立于设备,我们需要在 dp 中设置值。
因此,在您的代码中,您可以编写一个 swicth 案例,并根据您可以从设备指标获得的屏幕分辨率,可以像这样相应地设置值:
DisplayMetrics metrics = this.getResources().getDisplayMetrics();
if(metrics.density == 1)
//
else if(metrics.density == 2)
//
else if(metrics.density == 1.5)
//
您还可以使用公式将 px 值更改为 dp:
像素 = dp * (dpi/160)
http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html
可以肯定的是像素。
高度,MATCH_PARENT、WRAP_CONTENT 或以像素为单位的固定大小