【问题标题】:android 10" xhdpi tablet launcher icon sizeandroid 10" xhdpi 平板电脑启动器图标大小
【发布时间】:2013-01-08 21:40:28
【问题描述】:

我有一个创建快捷方式的应用。它会动态生成快捷方式图标,所以我需要知道正确的启动器图标大小。

为了解决这个问题,我在values-ldpi/mdpi/hdpi/xhdpi/xxhdpi 中创建了dimens.xml,并将我的图标大小分别定义为36/48/72/96/144px。

除了 10 英寸 xhdpi 平板电脑(如 nexus 10)外,此方案有效。尽管有 xhdpi 屏幕,但这些平板电脑似乎使用大小为 144 像素 (xxhdpi) 的启动器图标。

有没有一种方法可以正确检测考虑到 10 英寸 xhdpi 平板电脑的启动器图标大小?或者是否有更好的方案来正确调整我的图标大小?或者也许有办法将这种情况与简单的 xhdpi 区分开来案例?

【问题讨论】:

  • “看起来这些平板电脑使用大小为 144px (xxhdpi) 的启动器图标,尽管有一个 xhdpi 屏幕”——是的,谷歌提到了这一点,尽管是通过非官方渠道:plus.google.com/118292708268361843293/posts/ePQya3KsTjW 也许@987654325 @ on ActivityManager 会帮助你,正如尼克在他的 G+ 帖子中提到的那样。
  • 如果您有兴趣,请查看stackoverflow.com/questions/13215587/android-xxhdpi-resources,了解 Nexus 10 使用 XXHDPI 资源的原因。
  • @CommonsWare 请将其发布为答案 (getLauncherLargeIconDensity()),这很有效。
  • 实际上,由于我没有完全理解您的问题,更不用说getLauncherLargeIconDensity() 是否以及如何提供帮助,我建议您在这种情况下回答您自己的问题。对于遇到此问题的其他人会更有用。

标签: android android-launcher android-icons


【解决方案1】:

要获取启动器图标大小,只需按照上面 CommonsWare 的建议调用 ActivityManager.getLauncherLargeIconSize()。一个小问题是这仅在 API 11+ 上可用。在这种情况下,回退到使用DisplayMetrics。如果有运行 android 2 的 10" XHDPI 设备,这当然会失败,这是极不可能的(因为 X*HDPI 在 Android 2 时不存在)。这是我编写的实用方法,

@SuppressLint("NewApi")
private int getLauncherIconSize() {
    int size = 48;

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        ActivityManager mgr = (ActivityManager) activity.getSystemService(Context.ACTIVITY_SERVICE);
        size = mgr.getLauncherLargeIconSize();
    } else {
        DisplayMetrics metrics = new DisplayMetrics();
        activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
        switch (metrics.densityDpi) {
        case DisplayMetrics.DENSITY_LOW:
            size = 36;
            break;
        case DisplayMetrics.DENSITY_MEDIUM:
            size = 48;
            break;
        case DisplayMetrics.DENSITY_HIGH:
            size = 72;
            break;
        case DisplayMetrics.DENSITY_XHIGH:
            size = 96;
            break;
        case DisplayMetrics.DENSITY_XXHIGH:
            size = 144;
            break;
        }
    }

    return size;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    相关资源
    最近更新 更多