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();
}
}
现在,每当高度和宽度发生变化时,我都可以使用它并享受它:):)
我正在创建一个 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();
}
}
现在,每当高度和宽度发生变化时,我都可以使用它并享受它:):)