2012-12-24 144 views
2

如何顯示圖像從互聯網到gridview android應用程序中.after顯示clicl任何圖像在gridview它將顯示全屏幕圖像後左右滑動左右tp left.already我實現了一些代碼,一個錯誤是存在的。顯示後填充圖像如何刷新這些圖像。如何在我的android gridview中顯示來自互聯網的圖像圖像並顯示完整圖像?

ImageAdapter

public class ImageAdapter extends BaseAdapter { 
    private Context mContext; 

// Keep all Images in array 
public Integer[] mThumbIds = { 
     R.drawable.img_2, R.drawable.img_3, 
     R.drawable.img_4 
}; 

// Constructor 
public ImageAdapter(Context c){ 
    mContext = c; 
} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return mThumbIds.length; 
} 

@Override 
public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return mThumbIds[position]; 
} 

@Override 
public long getItemId(int position) { 

    return 0; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ImageView imageView; 
    if (convertView == null) { 
    imageView = new ImageView(mContext); 
    //imageView.setImageResource(mThumbIds[position]); 
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
    imageView.setLayoutParams(new GridView.LayoutParams(70, 70)); 
    } else { 
     imageView = (ImageView) convertView; 
    } 
    imageView.setImageResource(mThumbIds[position]); 
    return imageView; 
} 
} 

FullImage:

public class FullImageActivity extends Activity { 


private static final String LOGID = "CHECKTHISOUT"; 

private static final int SWIPE_MIN_DISTANCE = 160; 
private static final int SWIPE_MAX_OFF_PATH = 250; 
private static final int SWIPE_THRESHOLD_VELOCITY = 200; 
private GestureDetector gestureDetector; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.full_image); 

    // get intent data 
    Intent i = getIntent(); 

    // Selected image id 
    int position = i.getExtras().getInt("id"); 
    ImageAdapter imageAdapter = new ImageAdapter(this); 

    ImageView imageView = (ImageView) findViewById(R.id.full_image_view); 
    imageView.setImageResource(imageAdapter.mThumbIds[position]); 

    gestureDetector = new GestureDetector(new MyGestureDetector()); 
} 
private class MyGestureDetector extends SimpleOnGestureListener { 
    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
       float velocityY) { 
     try { 
      if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) 
       return false; 
      // right to left swipe 
      if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE 
        && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 
       next(); 
      } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE 
        && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 
       previous(); 
      } 
     } catch (Exception e) { 
      // nothing 
     } 
     return false; 
    } 
    public void next() 
    { 

    } 
    public void previous() 
    { 

    } 
} 
} 
+0

事實上,錯誤在logcat中顯示的是什麼? – Subburaj

回答

2

您可以顯示在GridView的圖像,然後你可以使用viewpager用刷卡來顯示全屏圖像。 我建議你重複使用這些圖像,而不是每次都從internet下載它們。你可以利用可用的庫,如https://github.com/nostra13/Android-Universal-Image-Loader,它會爲你處理緩存機制。

+0

很好的例子...謝謝 – venkat