Загрузите набор изображений в прокрутку - PullRequest
0 голосов
/ 13 января 2012

Хорошо, у меня есть JSON-массив URL-адресов изображений.Я хочу загрузить их в горизонтальную прокрутку.Это мой путь, но ничего не отображается, куда должен идти 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();
    }
}

Обратите внимание, что это делается в исполняемом классе.Большое спасибо

1 Ответ

0 голосов
/ 13 января 2012

В однопоточной модели Android есть два правила.

  1. Не блокировать поток пользовательского интерфейса
  2. Не получать доступ к инструментарию пользовательского интерфейса Android извне потока пользовательского интерфейса

Так что я не думаю, что вы можетедобавить представления в группу просмотра за пределами основного потока.Пожалуйста, смотрите: http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html для более полного объяснения.

Кроме того, вам нужно убедиться, что вы на самом деле устанавливаете contentview и вам может потребоваться вызвать invalidate() на viewgroup длявызвать перерисовку.

И, вероятно, вы должны использовать GridView .. не могу понять, почему вы используете для этого веб-просмотр.

...