我在做:

button.setLayoutParams(new GridView.LayoutParams(65, 65));

根据文档,宽度和高度的单位(上面都是65)是"像素".你如何强迫它成为独立于设备的像素,或"dp"?

推荐答案

您必须使用显示比例因子将其从dps转换为像素.

final float scale = getContext().getResources().getDisplayMetrics().density;
int pixels = (int) (dps * scale + 0.5f);

Android相关问答推荐

如何使用Gradle风味在两个Kotlin导入(Google vs Amazon Java billing library)之间进行 Select ?

无法从API访问项目详细信息

如何从LazyColumn中的图标异步获取可绘制的加载?

Jetpack Compose:带芯片的Textfield

使用Jetpack Compose创建特定于电视的布局

在更改MuableState的值后,Android API 26(Oreo)上的Composable不能重新组合

如何将DrawableId参数传递给XML布局?

错误:无法安装应用程序:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED (React-Native-Android-Studio)

设置背景图片组成Column

在 jetpack compose 中交替使用 View.INVISIBLE

Jetpack Compose 动画性能问题

单击过go 的文章时 NewsApp 崩溃

如何在 Android 应用程序未激活/未聚焦时显示视图?

react 从输入中找到路径'lib/arm64-v8a/libfbjni.so'的本机2个文件

Int 传递给 Intent 但Android工作室说我传递了一个字符串

对话框中的内容不可见

在 jetpack compose 中使用 viewmodel 的最佳实践

可组合的 fillMaxSize 和旋转不起作用

在jetpack compose中看不到圆角

如何使用 Glide 将图像下载到设备内部存储