这是最疯狂的问题。我正在从assets目录加载自定义图标以用于我的应用程序。应用程序加载自定义图标并在桌面上创建快捷方式。所有图标都是48x48 png文件。
在Android 2.1和2.2模拟器上,这非常有效。在Droid X(Android 2.2)上,图标显示小于48x48。
现在对于踢球者来说,如果我将其中一个图标移动到可绘制目录并从那里加载它就会正确显示。
任何想法droid x可能出现什么问题?
有没有办法获得所有drawable的列表?如果有,我可以把我的所有图标放在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;
}
}
答案 0 :(得分:0)
这里要提到的一件事是,当你说它在2.1,2.2模拟器上工作正常时......模拟器的密度是多少。密度对图像的显示方式产生巨大影响。
另一点,根据android处理图像的方式,小/普通/大/ xlarge屏幕和ldpi / mdpi / hdpi / xdpi的属性应用于res中的资源,因此可绘制文件夹。它不适用于资产文件夹。
我想说的是阅读如何Android displays assets并在res文件夹而不是资源文件夹中播放你的图标。您将找到解决方案,并增加您的Android知识。
答案 1 :(得分:0)
请参阅this answer,了解如何遍历R中的所有drawable。
这是相关的一行:
Field[] drawables = android.R.drawable.class.getFields();