android - 在 Android 中将 dip 转换为 px

标签 android density-independent-pixel

我已经编写了从 dip 中获取像素的方法,但它不起作用。它给了我运行时错误。

实际上我是在单独的类中运行此方法并在我的 Activity 类中初始化

Board board = new Board(this);
board.execute(URL);

此代码异步运行。请帮帮我。

public float getpixels(int dp){
    //Resources r = boardContext.getResources();
    //float px = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpis, r.getDisplayMetrics());
        
    final float scale = this.boardContext.getResources().getDisplayMetrics().density;
    int px = (int) (dp * scale + 0.5f);

    return px;
}

最佳答案

试试这个:

Java

public static float dipToPixels(Context context, float dipValue) {
    DisplayMetrics metrics = context.getResources().getDisplayMetrics();
    return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, metrics);
}

Kotlin

fun Context.dipToPixels(dipValue: Float) =
    TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, resources.displayMetrics)

关于android - 在 Android 中将 dip 转换为 px,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8399184/

相关文章:

android - 您如何为多种 Android 屏幕尺寸制作布局?

window - 如何为设备独立像素 (DIP) 构建 Windows 应用商店应用

android - 包装内容与设置 dp

android - 设置 Activity 后小部件未显示在主屏幕中

Android:使用宽度小于 320dip 的 AdMob

android - 如何在按钮上显示阿拉伯数字?

android - 当应用程序已经在后台运行时,深层链接到应用程序

android - 如何计算设备的像素密度 (dp)?

java - 如何用 <pre> 解析内容?

安卓工作室Javadoc : Cannot find symbol