2015-10-05 22 views
0

我是Android新手,想在循環內顯示圖像。我成功地能夠在循環外顯示它,但不能在循環內顯示它。我想實現這些2行代碼底部代碼除了content.append(NN2 [2] +「\ n」),希望大家明白。如何在Android中動態顯示圖像

ImageView i2 = (ImageView)findViewById(R.id.img2); 
bitmap = BitmapFactory.decodeStream((new URL ("httpS://graph.facebook.com/497305810301446/picture?type=large")).openConnection().getInputStream()); 
          i2.setImageBitmap(bitmap); 
         //layout4.addView(i2); 

下面是我想要的地方顯示圖像的循環:

Url=new URL("http://xx.xx.xx.xx/abc/users/get_fb.json?term="+searchValue); 
        urlConnection = (HttpURLConnection) Url.openConnection(); 
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
        StrictMode.setThreadPolicy(policy); 

        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); 
        //  InputStream in = urlConnection.getInputStream(); 
        Log.d("hello","world"); 
        //InputStreamReader isw = new InputStreamReader(); 
        SetServerString = bufferedReader.readLine(); 
        Log.d("hello",SetServerString); 

        String[] nn=SetServerString.split("name"); 
        String nn2[]; 
        String nn3,nn4; 

        // JSONObject obj = new JSONObject(SetServerString); 
        content.setText(""); 

        for(int a=0;a<nn.length;a++){ 

          // nn2=nn[a].split(","); 
          // nn3=nn2[0].replaceAll("\":\"", ""); 
          nn4 = nn[a].replaceAll("[id\\:\\}\\{\\[\\]\"]", ""); 

          nn2 = nn4.split(","); 
          // nn3=nn2[1].replaceAll("[\\:\\}\\{\\[\\]\"]",""); 
          // content.append(nn2.length+" \n "); 
          int p=1; 
          for (int i = 0; i < nn2.length && nn2.length > 1; i++) { 
           if(p==1) { 
           content.append(nn2[0] + "\n"); 
           if (nn2.length > 2) { 

            content.append(nn2[2] + "\n"); 
           } else { 
            content.append(nn2[1] + "\n"); 
           } 
           p = 0; 
          } 
          } 
+0

你是什麼意思在一個循環內? –

+0

究竟是什麼錯誤?如果發生任何錯誤或異常,您可以粘貼您的logcat。無論如何,真正的問題是有點模糊 –

+0

你的標題說「生成」,你的文字說「顯示」 - 這是什麼? –

回答

0

使用Picasso庫。它很容易處理顯示,下載和緩存圖像。

與畢加索,你可以簡單地輸入:

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); 

,這一切對於加載單個圖像。

如果你想加載很多圖像,最好使用例如ListView並創建特定的適配器。之後,您可以在適配器內使用Picasso。

+0

我將不勝感激,如果你能爲我提供一個在列表視圖或任何鏈接中通過picasso使用圖像的簡單示例。無論如何感謝@ piotr.wittchen –

0

你可以使用任何畢加索或通用圖像裝載機

添加通用圖像裝載機罐子(谷歌和下載)

和使用方法

/**Load initially other pics**/ 
public void loadPic(String url) 
{ 

    com.nostra13.universalimageloader.core.ImageLoader imageLoader = com.nostra13.universalimageloader.core.ImageLoader.getInstance(); 
    imageLoader.displayImage(url, imageview, null, new ImageLoadingListener() { 
     @Override 
     public void onLoadingStarted(String imageUri, View view) { 

     } 

     @Override 
     public void onLoadingFailed(String imageUri, View view, FailReason failReason) { 
      imageview.setImageResource(R.drawable.errorimg); 
     } 

     @Override 
     public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 
      imageview.setImageBitmap(loadedImage); 
     } 

     @Override 
     public void onLoadingCancelled(String imageUri, View view) { 
      imageview.setImageResource(R.drawable.defaultimg); 
     } 
    }, new ImageLoadingProgressListener() { 
     @Override 
     public void onProgressUpdate(String imageUri, View view, int current, int total) { 

     } 
    }); 
}