有没有办法将LayoutParams的高度/宽度设置为与密度无关的像素(dp)?当以编程方式设置高度/宽度时,它看起来是以像素为单位的,而不是以dp为单位的.

推荐答案

您需要将DIP值转换为像素:

int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, <HEIGHT>, getResources().getDisplayMetrics());

对我来说,这很管用.

Android相关问答推荐

使用Kotlin的SD卡

在卡片上创建圆角底部边框

在一列中垂直对齐两个框

Hilt+Worker NoSuchMethodException:<;init>;[class android.content.Context,class androidx.work.WorkerParameters]

Android 中 recyclerview 的自定义分隔线 colored颜色 不起作用

使用 JNI 从 Android 应用程序中使用 Kotlin/Native 预构建共享库

Android 导航 - 定义参数

如何在没有人窃取令牌的情况下使用我的移动应用程序中的 API

如何在 React Native 下载文件之前打开文件管理器并 Select 一个目录

Visual Studio 无法在 Android 上编译 .NET MAUI 项目

Jetpack Compose Arc 进度条动画(如何重启动画)

没有互联网连接时,Firebase Storage putFile() 永远不会完成

无法解析依赖项'com.github.smarteist:autoimageslider:1.4.0-appcompat'

协程是否在 if 条件下保持秩序?

0dp 大小的可组合文件是否可以组合?

Google Play 控制台您的应用是否使用广告 ID?

将生成的 AAR 与 Composables 一起使用时未解决的参考

如何获取 Material Design 3 的底部导航栏高度?

如何增加 BottomSheetDialog 的高度以跟随垂直平移

验证备份 ZIP 文件