我正在使用ActionBar Tabs和ViewPager编写应用程序。我有两个标签和两个页面。第一页只是Fragmet,第二页是ListFragment。
在第一页中,我正在反转关于平台的名称,水间隔,照片等的信息。我可以添加默认照片(来自资源)并拍摄植物照片。然后我以两种方式将照片的数据保存在像String这样的数据库中:来自资源的图像id或者保存照片的路径。
在第二页(ListFragment)中是带有自定义适配器的ListView,并且存在问题。 一行列表包含两个TextView,CheckBox和ImageView。
在我的自定义适配器的方法getView中,每一行都可以正常工作,但是将文件解码为位图需要花费大量时间,即使在解码完所有照片之后,它也会使我的应用程序正常运行。
我的代码是在每个列表行中设置图像:
private void setUpImage(int position, ImageView photo)
{
if(plants.get(position).getPhoto().contains("jpg"))
{
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 10;
Bitmap bitmap = BitmapFactory.decodeFile(plants.get(position).getPhoto(), options);
photo.setImageBitmap(bitmap);
}
else
{
photo.setImageResource(Integer.parseInt(plants.get(position).getPhoto()));
}
}
有谁知道如何在ListView的每个列表行中提高解码和设置图像的速度?