我有一个SQL数据库,从数据库我会得到名称字符串使用,我需要在列表中显示图标。 要做到这一点我也跟着两种方法,一种是:从资源文件夹检索图像
int id= context.getResources().getIdentifier(path + i.getIcon(),null, null);
我发现这个方法没有太大的效率,所以我跟着一些其他的技术,即
try {
Class res = R.drawable.class;
Field field = res.getField(i.getIcon());
drawableId = field.getInt(null);
holder.ContactImage.setImageResource(drawableId);
}
catch (Exception e) {
Log.e("MyTag", "Failure to get drawable id.", e);
holder.ContactImage.setImageResource(R.drawable.ic_all_contacts_green);
}
这里的问题是,一段时间图标名称我从数据库中获得的数据将不会出现在Drawable文件夹中,那时候我觉得我的UI很慢,如果我尝试滚动,我尝试使用上述两种技术,但是我发现没有用。
如何克服这个问题,当图标丢失时,第一个方法抛出NULL,第二个抛出异常,但为什么这会花费太多时间呢? 如何防止我的UI中的呆滞,任何有效的技巧?
你不应该使用反射API,因为它真的很慢。在Dalvik上,特别是 – nullpotent 2012-08-05 14:09:29
我很困惑你想做什么。在'drawable'文件夹中检索drawable的ID通常是'R.drawable.id_value_of_drawable',其中drawable的文件名是'id_value_of_drawable.extension'。 – DeeV 2012-08-05 14:13:21
嘿@AljoshaBre即使在我的手机也变慢:( – Naruto 2012-08-05 14:32:09