【问题标题】:Identify dp sizes in different screens识别不同屏幕中的 dp 大小
【发布时间】:2015-07-21 23:05:43
【问题描述】:

如果Custom Viewdp 中的大小为500w*600h,与(1152w*720h)px android 屏幕中的px 相同,那么dppx 在@ 屏幕上的视图大小将是多少987654328@ 屏幕。以及如何计算不同大小的View。

【问题讨论】:

    标签: android screen android-custom-view screen-resolution


    【解决方案1】:

    dp / px 比率基于设备屏幕的密度。

    我建议您阅读有关该主题的 Android 文档。

    http://developer.android.com/guide/practices/screens_support.html

    每个屏幕密度分类都有一个与之关联的特定 px 乘数,即 mdpi = px * 1 和 hdpi = px * 1.5

    这是一个不错的小计算器,可以帮助您理解它:

    http://labs.rampinteractive.co.uk/android_dp_px_calculator/

    【讨论】:

    • 我已经阅读了那些文章,但无法在 android 代码中转换这些值。这就是为什么问一个关于它的问题。
    • 我很困惑,你不明白的到底是什么?我有一种感觉是屏幕的密度,(更高的密度=更多的像素),因此没有直接转换,它取决于屏幕密度
    【解决方案2】:

    假设您在 dp 中指定了视图大小(与 dip 相同),您可以使用 get 一个 DisplayMetrics 实例将 dp 转换为当前设备的实际像素。

    一个方便的函数,您可以添加到实用程序类中进行转换:

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

    【讨论】:

    • 我在这里说的是Custom View size,自定义视图不存在上下文,所以 DisplayMetrics 没用!
    • 1.自定义视图是指一些扩展 android.view.View 的类吗? 2. 您是否尝试在运行时计算正确的值或创建硬编码值,然后根据屏幕大小插入到 xml 布局文件中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 2012-04-10
    相关资源
    最近更新 更多