안드로이드 개발 질문/답변
(글 수 45,052)
구현하고자 하는 것은 위와 같은 것입니다.
로딩 이미지는 프레임 에니메이션으로 구현하였습니다.
현재 로딩 이미지가 나오는 부분은 Gallery입니다.
로딩 이미지는 Gallery에 사진이 모두 로딩되기 전까지 출력이 됩니다.
그리고 좌우 플릭킹을 했을 때도 당연히 존재해야 합니다.
결국은 실제 사진이 출력되기 전까지 Gallery의 ImageView위에 로딩 이미지를 출력하려고 합니다.
//ListView 와 Data 를 Adapter 로 연결한다.
private class GalleryViewAdapter extends BaseAdapter
{
boolean isCheck = false;
private Context mContext = null;
// Constructor
public GalleryViewAdapter(Context context) {
mContext = context;
}
public int getCount()
{
return m_arrayListItem.size();
}
public Object getItem(int position)
{
return position;
}
public long getItemId(int position)
{
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{
ImageView imageView = null;
if(convertView == null)
{
imageView = new ImageView(mContext);
if(m_Width != 0 && m_Height != 0)
imageView.setLayoutParams(new Gallery.LayoutParams(m_Width,m_Height));
else
imageView.setLayoutParams(new Gallery.LayoutParams(100,70));
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
}
else
{
imageView = (ImageView)convertView;
}
//imageView.setBackgroundResource(R.drawable.galleryitemselector);
//배열에 이미 저장되어 있는 이미지를 보여줌.
imageView.setImageBitmap(Bitmap.createScaledBitmap(m_arrayListItem.get(position), m_Width-6, m_Height-6, true));
return imageView;
위 소스는 getView()의 소스입니다.
Gallery와 로딩이미지가 혼연일체(^^)가 되어야 플릭킹 되도 항상 따라 다닐텐데...
이거 어찌 구현해야 할지 생각이 잘 안나네요. 조언 부탁드립니다. ^^
일감으로 생각나는 방법은 Thread를 사용해서 돌립니다.
Thread Progress
{
(1)Progress.show()
(2)이미지 불러오는(웹에서) 모듈 실행
(3)flag변경(다 불러왔다는 것을 확인하기 위한)
}
flag가 변경되면 Progress.dismiss()
그리고 나서 Gallery에 보여줌.
이렇게 하면 progress 싱크 맞춰서 가능할것 같네요.
하지만 단순히 할 수있는 방법중 하나지 최선의 방법은 더 있을것 같습니다.