2012-01-13 4 views
0

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

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

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

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

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

+0

Я использовал WebView, потому что загрузка изображений из URL-адресов кажется приятным в веб-просмотрах. Если мне не разрешено добавлять представления вне основного потока, но мне не разрешено делать сетевые подключения в основном потоке, что я должен делать? – Nick

+0

Хорошо, хорошо, я ушел от Webviews. Он сломал анимированные GIF-файлы, но по крайней мере он загружает изображения правильно. Спасибо за ваш совет. – Nick

Смежные вопросы