2011-05-01 7 views
0

안녕하세요 안드로이드에있는 URL에서 GridView를 만들고 있습니다. 모든 것이 작동하고 있습니다. 스크롤이 원활하지 않습니다. 어떻게 스크롤 문제를 해결할 수 있습니까? 내 코드는 다음과 같습니다.GridView from URL from

public class TestActivity extends Activity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.testlayout); 
    GridView g = (GridView) findViewById(R.id.myGrid); 
    g.setAdapter(new ImageAdapter(this)); 
} 
public class ImageAdapter extends BaseAdapter { 
    public ImageAdapter(Context c) { 
     mContext = c; 
    } 
    public int getCount() { 
     return mThumbIds.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 imageView; 
     if (convertView == null) { 
      imageView = new ImageView(mContext); 
      imageView.setLayoutParams(new GridView.LayoutParams(45, 45)); 
      imageView.setAdjustViewBounds(false); 
      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
      imageView.setPadding(8, 8, 8, 8); 
     } else { 
      imageView = (ImageView) convertView; 
     } 
     imageView 
       .setImageDrawable(LoadImageFromWebOperations("http://www.example.com?id="+position)); 
     return imageView; 
    } 
    protected Drawable LoadImageFromWebOperations(String url) { 
     try { 
      InputStream is = (InputStream) new URL(url).getContent(); 
      Drawable d = Drawable.createFromStream(is, "src name"); 
      return d; 
     } catch (Exception e) { 
      System.exit(0); 
      return null; 
     } 
    } 
    private Context mContext; 
    private Integer[] mThumbIds; 
} 

}

+0

이 질문이 있습니까? 코드를 공유하면 멋지지만 질문을하고 코드를 답변으로 게시하고 동의하십시오. – MByD

+0

나는 스크롤링 문제에 대해 질문했다. – Altaf

+0

스크롤링 문제는 무엇입니까? 당신은 스크롤이 부드럽다 고 썼습니다 ... – MByD

답변

0

당신은 UI 스레드에서 원격 서버에서 이미지 코드를로드. 그리드에서 생성 된 각 새 항목에 대해 다운로드 기간 동안 UI 스레드를 차단합니다. 별도의 스레드에서 다운로드를 수행해야합니다.