【问题标题】:Android ListView with drawable int array for performance boost具有可绘制 int 数组的 Android ListView 以提高性能
【发布时间】:2014-07-16 09:20:43
【问题描述】:

我有很多可绘制对象,我将它们传递到 int 数组中,然后将它们加载到我的构造函数中。该方法如下所示:

public static final int contactsArray[] = { R.drawable.contact_image_1,
R.drawable.contact_image_2, 
R.drawable.contact_image_3,
R.drawable.contact_image_4,
R.drawable.contact_image_5 };  

之后,用目前的方法:

public static List<DataModel> getContacts()
{
List<DataModel> items = new ArrayList<DataModel>();
items.add(new DataModel(contactsArray[0]));
items.add(new DataModel[1]));
items.add(new DataModel(contactsArray[2]));
items.add(new DataModel(contactsArray[3]));
items.add(new DataModel(contactsArray[4]);
return items;
}

使用旧方法:

public static List<DataModel> getContacts() {
List<DataModel> items = new ArrayList<DataModel>();
items.add(new DataModel(R.drawable.contact_image_1));
items.add(new DataModel.drawable.contact_image_2));
items.add(new DataModel(R.drawable.contact_image_3));
items.add(new DataModel(R.drawable.contact_image_4));
items.add(new DataModel(R.drawable.contact_image_5);
return items;
}

我对列表使用 ViewHolder 模式,并将 getContacts() 方法作为适配器参数传递。

我的问题是,如果我首先将可绘制对象加载到 int 数组中,或者只是在每个构造函数参数中传递每个可绘制资源引用,是否会产生性能差异。 谢谢。

【问题讨论】:

  • 您是找到答案的合适人选,因为您已经拥有所有代码。你的印象是什么?
  • 嗯,我想,应该是相同的性能,因为最后我已经通过 R 类直接静态地访问它们。
  • 现在我因为没有注意到这一点而感到愚蠢。谢谢你让我问自己。

标签: android performance list listview drawable


【解决方案1】:

此更改就像将文件路径保存在数组中一样,这不会影响性能,因为图像的加载发生在适配器中

【讨论】:

  • 我明白了,尽管事实上我知道我实际上并没有创建对象,而只是引用了我在创建对象方面考虑的资源路径。谢谢您的意见。
猜你喜欢
  • 1970-01-01
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-29
  • 2012-05-01
  • 2021-07-24
相关资源
最近更新 更多