android - 基于ppi的像素到dp转换器

标签 android ppi

我正在将给定图形的 px 转换为 dp。通过文档我注意到 1dp = 3px 对于 480ppi 屏幕(xxhdpi)。

我正在 Redmi Note3 上进行测试,它的分辨率约为 403 ppi。

我的设计师为我提供了以像素为单位的边距。我应该使用 1:3 的比例将它们转换为像素还是应该不同

最佳答案

/**
 * This method converts dp unit to equivalent pixels, depending on device density. 
 * 
 * @param dp A value in dp (density independent pixels) unit. Which we need to convert into pixels
 * @param context Context to get resources and device specific display metrics
 * @return A float value to represent px equivalent to dp depending on device density
 */
public static float convertDpToPixel(float dp, Context context){
    Resources resources = context.getResources();
    DisplayMetrics metrics = resources.getDisplayMetrics();
    float px = dp * ((float)metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT);
    return px;
}

/**
 * This method converts device specific pixels to density independent pixels.
 * 
 * @param px A value in px (pixels) unit. Which we need to convert into db
 * @param context Context to get resources and device specific display metrics
 * @return A float value to represent dp equivalent to px value
 */
public static float convertPixelsToDp(float px, Context context){
    Resources resources = context.getResources();
    DisplayMetrics metrics = resources.getDisplayMetrics();
    float dp = px / ((float)metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT);
    return dp;
}

有关更多信息,请查看此 SOF 帖子 Converting pixels to dp

关于android - 基于ppi的像素到dp转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39265732/

相关文章:

android - 将 Firebase Analytics 添加到 Android 应用 - 库版本

objective-c - 了解 Cocoa Drawing 中的点和用户空间,因为它们与屏幕分辨率交互

ios - cocoa 点vs像素和PPI

ios - iOS应用图片分辨率

android - 导出后证书指纹不匹配

Android 和 SQLite

android - 摇晃检测android wear

c# - 如何登录Unity安卓游戏?

c++ - 在 windows 下获取实际屏幕 dpi/ppi