将一组图像加载到滚动视图中

时间:2012-01-13 16:55:50

标签: android image scrollview runnable

好的,我有一个图像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();
    }
}

请注意,这是在runnable类中完成的。非常感谢

1 个答案:

答案 0 :(得分:0)

Android单线程模型中有两个规则。

  1. 不要阻止UI线程
  2. 不要从UI线程外部访问Android UI工具包
  3. 所以我认为你不能在主线程之外的视图组中添加视图。有关更全面的解释,请参阅:http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html

    此外,您需要确保实际设置contentview,并且可能需要致电invalidate()上的viewgroup进行重绘。

    并且,您可能应该使用GridView ..无法理解您为何使用网页浏览。