안드로이드 개발 질문/답변
(글 수 45,052)
xml에서 이미지 주소를 받아오면 그것을 벡터에다가 넣고 그리드 뷰로 출력을 하려고합니다.
1. 일반 겔러리에서 배열에다가 이미지 주소 넣고 띄우는 것 했어요. 기본적인 소스 가지고요.
public class ImageAdapter extends BaseAdapter {
private Context myContext;
private String[] myRemoteImages = {
"http://XXXXXXXXXX/capture/20100514.jpg",
"http://XXXXXXXXXX/capture/20100515.jpg",
"http://XXXXXXXXXX/capture/20100516.jpg",
"http://XXXXXXXXXX/capture/20100534.jpg"
};
public ImageAdapter(Context c) { this.myContext = c; }
public int getCount() { return this.myRemoteImages.length; }
public Object getItem(int position) { return position; }
public long getItemId(int position) { return position; }
public View getView(int position, View convertView, ViewGroup parent) {
ImageView i = new ImageView(this.myContext);
try {
URL aURL = new URL(myRemoteImages[position]);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
Bitmap bm = BitmapFactory.decodeStream(bis);
bis.close();
is.close();
i.setImageBitmap(bm);
} catch (IOException e) {
i.setImageResource(R.drawable.error);
Log.e("DEBUGTAG", "Remtoe Image Exception", e);
}
i.setScaleType(ImageView.ScaleType.CENTER_CROP);
i.setLayoutParams(new Gallery.LayoutParams(300, 300));
return i;
}
2. 리소스 파일이 있는 그리드 뷰도 해봤습니다.
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return null;
}
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.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
} imageView.setImageResource(mThumbIds[position]);
return imageView;
}
그런데 웹이미지를 그리드에 넣는 것이 잘 감이 안잡히네요오오오오
참고로 최종적으로 구현할 모습은
서버의 xml에서 목록을 받아온 뒤 동영상 뷰, 이미지 뷰를 출력하는 것입니다.
에에!! 해결했어요. 며칠 동안 잘 안됐었는데 -_-
//1. 원래 겔러리 뷰의 아랫 것을 (웹이미지를 불렀던 겔러리에서 뷰형식만 그리드로 바꾼 형태입니다) //((Gallery) findViewById(R.id.gallery)).setAdapter(new ImageAdapter(this)); //2. 그리드 뷰에 맞게 바꾸고요.(R.id.gridview 는 xml을 설정해 놓은 것입니다.) GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(new ImageAdapter(this));
//3. 요것도 그리드뷰에 맞게 바꾸니깐 되었네요. 몇줄 안되는 간단한 것이었네요. 헤헤 //i.setLayoutParams(new Gallery.LayoutParams(300, 300)); i.setLayoutParams(new GridView.LayoutParams(85, 85));



