안드로이드 개발 질문/답변
(글 수 45,052)
웹에있는 사진들을 gallery 형식으로 출력을하고 있습니다.
public View getView(int position, View convertView, ViewGroup parent) {
i =new ImageView(mContext); // i 는 static 으로 처리.
if(convertView == null){
try {
URL aURL = new URL(mImageIds[position]); // mImageIds = 20개가량의 주소가 저장되어있습니다.
is = aURL.openStream(); // is 도 static 으로 처리.
bis = new BufferedInputStream(is); // bis 도 static 으로선언.
Bitmap bm = BitmapFactory.decodeStream(bis);
BitmapFactory.decodeStream(bis);
i.setImageBitmap(bm);
bis.close();
is.close();
} catch (IOException e) {
}
i.setScaleType(ImageView.ScaleType.FIT_CENTER);
i.setLayoutParams(new Gallery.LayoutParams(180, 210));
i.setBackgroundResource(mGalleryItemBackground);
}// end if
}
일단은 사진들이 불러와져서, 보여집니다만, 너무 느립니다. 속도향상을 하려고 몇일째 붙잡고 있지만, 저위의 방법이외에는
더 느려질뿐 개선이되질 않습니다.
좀 빠르게 터치하여 움직이기라도 하면, 툭툭 끈기거나 이미지가 보이지 않는 문제점이있습니다.
bitmapfactory.option 을사용하여 해상도를 1/4 로 줄여보기도 해도 역시나 느립니다.
어떻게해야 빠르게 로딩이 가능할까요?.
public View getView(int position, View convertView, ViewGroup parent) {
i =new ImageView(mContext); // i 는 static 으로 처리.
if(convertView == null){
try {
URL aURL = new URL(mImageIds[position]); // mImageIds = 20개가량의 주소가 저장되어있습니다.
is = aURL.openStream(); // is 도 static 으로 처리.
bis = new BufferedInputStream(is); // bis 도 static 으로선언.
Bitmap bm = BitmapFactory.decodeStream(bis);
BitmapFactory.decodeStream(bis);
i.setImageBitmap(bm);
bis.close();
is.close();
} catch (IOException e) {
}
i.setScaleType(ImageView.ScaleType.FIT_CENTER);
i.setLayoutParams(new Gallery.LayoutParams(180, 210));
i.setBackgroundResource(mGalleryItemBackground);
}// end if
}
일단은 사진들이 불러와져서, 보여집니다만, 너무 느립니다. 속도향상을 하려고 몇일째 붙잡고 있지만, 저위의 방법이외에는
더 느려질뿐 개선이되질 않습니다.
좀 빠르게 터치하여 움직이기라도 하면, 툭툭 끈기거나 이미지가 보이지 않는 문제점이있습니다.
bitmapfactory.option 을사용하여 해상도를 1/4 로 줄여보기도 해도 역시나 느립니다.
어떻게해야 빠르게 로딩이 가능할까요?.