Android 自定义视图 onSizeChanged 单位?

Android Custom View onSizeChanged Units?

我正在创建一个 Android 自定义视图并覆盖该视图的

void onSizeChanged(int w, int h, int oldw, int oldh)

当我使用以下值创建布局时,w 和 h 的值为 300:

android:layout_width="100dp" android:layout_height="100dp"

我找不到有关 w 和 h 参数所用单位的文档。它们以像素为单位吗?

是的,它们以像素为单位,您可以将 dps 转换为像素以供您使用。

float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 14, r.getDisplayMetrics());

这样您就可以获得具有所需 dp 的像素,并相应地在代码中使用它们。希望这会有所帮助:)

调用此函数时,视图大小发生了变化 如果我们更改显示尺寸代码,我们可以将这个函数的高度和宽度,并在函数内部使用这些参数作为新的尺寸。

点赞下方代码

    @Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);
    if (mHeight == 0 && mWidth == 0 && w != 0 && h != 0) {
        mHeight = getHeight();
        mWidth = getWidth();
    }
}

现在,每当高度和宽度发生变化时,我都可以使用它并享受它:):)