【问题标题】:Shortcut icon too small from assets directory资产目录中的快捷方式图标太小
【发布时间】:2011-02-15 03:13:23
【问题描述】:

这是最疯狂的问题。我正在从资产目录加载自定义图标以用于我的应用程序。应用程序加载自定义图标并在桌面上创建一个快捷方式。所有图标都是 48x48 png 文件。

在 Android 2.1 和 2.2 模拟器上,这很完美。在 Droid X (Android 2.2) 上,图标显示小于 48x48。

现在是踢球者,如果我将其中一个图标移动到可绘制目录并从那里加载它,它会正确显示。

您知道 droid x 可能存在什么问题吗?

有什么方法可以获取所有可绘制对象的列表吗?如果有的话,我可以把我所有的图标放在 drawables 目录中,尽管在里面转储 100 个图标有点难看。

我加载图标的代码非常标准:

        AssetManager assets = context.getAssets();
        InputStream inputStream = assets.open("icons/"+ name);
        if (inputStream != null)
        {
            Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
            if (bitmap != null)
            {
                return bitmap;
            }
        }

【问题讨论】:

    标签: android


    【解决方案1】:

    这里要提到的一件事是,当您说它在 2.1、2.2 仿真器上运行良好时……所用仿真器的密度是多少。密度对图像的显示方式有很大影响。

    另外一点,根据 android 处理图片的方式,small/normal/large/xlarge 屏幕和 ldpi/mdpi/hdpi/xdpi 的属性被应用到 res 中的 assets 上,从而也应用到 drawable 文件夹中。它不适用于资产文件夹。

    我想说的是阅读Android displays assets 如何在 res 文件夹而不是 assets 文件夹中播放你的图标。您将找到解决方案,并增加您的 Android 知识。

    【讨论】:

    • 要从 res 文件夹中加载 100 个图标,我必须对所有图标进行硬编码。你可以在我的帖子中看到我已经提到它们可以放在那里。我必须创建一个类来创建图标列表。将来添加或删除图标也需要更改类。我找不到任何方法来获取所有可绘制对象的列表,就像您可以获取资产列表一样。
    【解决方案2】:

    请参阅this answer,了解如何遍历 R 中的所有可绘制对象。

    这是相关的行:

    Field[] drawables = android.R.drawable.class.getFields();
    

    【讨论】:

      猜你喜欢
      • 2017-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-17
      • 2015-10-06
      • 1970-01-01
      • 2017-06-11
      • 1970-01-01
      相关资源
      最近更新 更多