2012-01-13 4 views
0

さて、画像URLのJSON配列があります。私は水平スクロールビューにそれらをロードしたい。これは私がそれについて行ってきた方法ですが、ScrollViewは行くべきところは何も表示されません取得します。これは実行可能なクラスで行われていること一連の画像をスクロールビューに読み込む

public void run() { 
    JSONArray photosArray; 
    caption = new WebView(thisContext); 
    imageScroller = new HorizontalScrollView(thisContext); 
    imagesHolder = new LinearLayout(thisContext); 
    imagesHolder.setOrientation(LinearLayout.HORIZONTAL); 
    try { 
     photosArray = new JSONArray(postData.getString("photos")); 
     for(int i = 0; i < photosArray.length(); i++) { 
      WebView iV = new WebView(thisContext); 
      JSONObject thisPhoto = photosArray.getJSONObject(i); 
      JSONArray sizesArray = new JSONArray(thisPhoto.getString("alt_sizes")); 
      JSONObject largest = sizesArray.getJSONObject(0); 
      iV.loadData("<img src=\""+largest.getString("url")+"\" />", "text/html", null); 
      imagesHolder.addView(iV); 
     } 
     imageScroller.addView(imagesHolder); 
     myPostHolder.addView(imageScroller); 
     caption.loadData(postData.getString("caption"),"text/html",null); 
     myPostHolder.addView(caption); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

注意。ありがとうたくさん

答えて

0

Androidシングルスレッドモデルには2つのルールがあります。

  1. だから私はあなたがメインの外のViewGroupにビューを追加することができるとは思わないUIスレッド

外部からAndroidのUIツールキットにはアクセスしないでくださいUIスレッド

  • をふさがないでください糸。完全な説明はhttp://developer.android.com/guide/topics/fundamentals/processes-and-threads.htmlをご覧ください。

    また、実際にcontentviewを設定していることを確認してから、viewgroupinvalidate()と電話をかけて再描画する必要があります。

    そしておそらくGridViewを使用しているはずです。なぜこれを行うにはwebviewを使用するのか分かりません。

  • +0

    WebViewを使用していたのは、URLからの画像の読み込みがウェブビューでうまくいくように見えるからです。メインスレッドの外側にビューを追加することは許可されていませんが、メインスレッドでウェブ接続を許可されていない場合、どうすればいいですか? – Nick

    +0

    さて、まあ、私はWebviewsから離れています。アニメーション化されたGIFを壊しましたが、少なくとも今は画像を正しく読み込みます。アドバイスありがとうございます。 – Nick

    関連する問題