2011-05-01 11 views
0

こんにちは 私はアンドロイドのURLからGridViewを作成していますが、すべて動作しています。スクロールがスムーズではありません。スクロールの問題を解決するにはどうすればいいですか? ここに私のコードです。GridViewのURL from android

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スレッドをブロックします。別のスレッドでダウンロードを実行する必要があります。