5

如果我想在 Java 中以编程方式设置 ImageView 的宽度/高度,如下所示:

image_view.getLayoutParams().width = 200;

那些“200”的单位是什么?是 px/dp 吗?
它在每台设备上看起来“都一样”吗?(这意味着:它在平板电脑上非常大而在智能手机上完全小吗?)

4

2 回答 2

3

它以像素为单位。但是要独立于设备,我们需要在 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)

于 2013-08-21T02:31:39.787 回答
2

http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html

可以肯定的是像素。

高度,MATCH_PARENT、WRAP_CONTENT 或以像素为单位的固定大小

于 2013-08-21T02:24:48.333 回答