Я пытаюсь загрузить изображения в GridView
из папки с дополнительным адаптером, однако прокрутка сетки в негладкой форме. Может кто-нибудь предложить, как я могу улучшить свой код?Загрузка изображений из активов в GridView с плавной прокруткой
И еще одна вещь, из-за которой я получаю ошибки памяти на некоторых устройствах. Как я могу оптимизировать эту программу?
public class GridViewAdapter extends BaseAdapter {
Context mContext;
public GridViewAdapter(Context mContext){
this.mContext = mContext;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Holder holder;
if (convertView == null) {
holder = new Holder();
LayoutInflater inflater1 = (LayoutInflater) this.mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater1.inflate(R.layout.gv_item, null);
holder.imageView = (GridImageView) convertView.findViewById(R.id.imageView);
convertView.setTag(holder);
} else {
holder = (Holder) convertView.getTag();
}
holder.imageView.setImageBitmap(Helper.getBitmapFromAssets((position+1)+"_thum", mContext));
return convertView;
}
private static class Holder {
GridImageView imageView;
}
@Override
public int getCount() {
return Constants.TOTAL_IMAGES;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return 0;
}
}
И мой Helper.getBitmapFromAssets
следует за.
/**
* Reads Images from Assets Folder
* @param fileName
* @return
*/
public static Bitmap getBitmapFromAssets(String fileID, Context mContext) {
AssetManager assetManager = mContext.getAssets();
InputStream istr;
Bitmap bitmap = null;
try {
istr = assetManager.open("images/"+fileID+".encrypted");
bitmap = BitmapFactory.decodeStream(istr);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return bitmap;
}