2012-12-24 148 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