Я использую универсальный загрузчик изображений для загрузки около 50 изображения из URL
списка изображений с некоторыми изображениями имеют размера 960px х 1378 и некоторые изображения имеют размер 1920px х 1378px это мой связующий данныеандроид изображения загрузить из URL использовать универсальный образ загрузчика
public class BinderDataImg extends BaseAdapter {
static final String KEY_IMG = "img";
LayoutInflater inflater;
List<HashMap<String,String>> imgHashmap;
ViewHolder holder;
public BinderDataImg() {
// TODO Auto-generated constructor stub
}
public BinderDataImg(Activity act, List<HashMap<String,String>> map) {
this.imgHashmap = map;
inflater = (LayoutInflater) act
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
// TODO Auto-generated method stub
return imgHashmap.size();
}
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
if(convertView==null){
vi = inflater.inflate(R.layout.list_img, null);
holder = new ViewHolder();
holder.iv_img =(ImageView)vi.findViewById(R.id.imageViewImg);
vi.setTag(holder);
}
else{
holder = (ViewHolder)vi.getTag();
}
String uri = imgHashmap .get(position).get(KEY_IMG);
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.getInstance().displayImage(uri, holder.iv_img);
return vi;
}
static class ViewHolder{
ImageView iv_img;
}
}
это конфиг загрузчика изображения универсальной активности
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheOnDisc(true).cacheInMemory(true)
.imageScaleType(ImageScaleType.EXACTLY)
.displayer(new FadeInBitmapDisplayer(300)).build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
getApplicationContext())
.defaultDisplayImageOptions(defaultOptions)
.memoryCache(new WeakMemoryCache())
.discCacheSize(100 * 1024 * 1024).build();
ImageLoader.getInstance().init(config);
все изображения загружены, но когда прокрутку вверх или вниз, изображение в вверх или ниже перезагрузки снова
и другая проблема
, когда экран по вертикали, ширина размера использовать экран изображения 960x1378
все заливка изображение на экране
но когда поворот экран к горизонтали, ширина экрана использовать размер изображения 1960x1378
и изображение 960x1378 будет меньше
почему это? и как это исправить
извините за мой плохой английский
спасибо за чтение
это происходит потому, что когда вы просматриваете вверх или вниз, просмотр становится обновленным, просто говоря, что метод getView адаптера снова открывается и снова обновляет представление, чтобы перезагрузить изображение. Это нормально. –
это нормально? и если я поверну экран, изображение будет меньше. это тоже нормально? – abcd1234
Да, это нормальный человек. Если ваше изображение становится меньше, чем проблема с макетом, это не нормально. –