2011-12-21 4 views
1

Я стараюсь использовать галерею для отображения изображения в сети. Но когда поверните налево или вправо, чтобы изменить изображение. Изображение показывает задержку около 3 секунд для загрузки из сети каждый раз. Может загружать следующее изображение в фоновом режиме при показе этого изображения. Или сохраните все загруженные изображения в кеш, но это может вызвать нехватку памяти. Мой код, как показано ниже:Задержка галереи при изменении изображения

gallery = (MyGallery) this.findViewById(R.id.gallery_photo); 
gallery.setAdapter(new GalleryViewerAdapter(this, URL)); 

URL является строка массив URL.

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
ImageView iv = new ImageView(this.mContext); 
try { 
URL aryURL = new URL(URL[i]); 
URLConnection conn = aryURL.openConnection(); 
conn.connect(); 
InputStream is = conn.getInputStream(); 
Bitmap bm = BitmapFactory.decodeStream(is); 
is.close(); 
iv.setImageBitmap(bm); 
iv.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
return iv; 
} 

Как изменить мой код, можно избежать нагрузки и задержки каждый раз?

+1

сетка изображений является лучшей идеей при отображении нескольких изображений из удаленного соединения ... я могу помочь в виде сетки –

+0

Может ли сетка изображения получить эффект, аналогичный галерее, когда палец перемещается по экрану? – brian

+1

вот как это выглядит: http://developer.android.com/resources/tutorials/views/images/hello-gridview.png –

ответ

1
public class MyGallery extends Gallery { 
    public MyGallery(Context context, AttributeSet attrSet) { 
     super(context, attrSet); 
    } 

    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
     return false; 
    } 

    @Override 
    protected android.view.ViewGroup.LayoutParams generateLayoutParams (android.view.ViewGroup.LayoutParams p) { 
     return super.generateLayoutParams(p); 
    } 
} 

Возможно, вы можете попробовать это.

Смежные вопросы