2016-07-14 25 views
1

我向服務器發送請求,服務器發送設備名稱列表。我想根據服務器返回的設備名稱加載映像,現在服務器有200種設備名稱,並且每次發送請求時服務器都會返回一個隨機設備名稱列表。有沒有一種有效的方式來加載基於響應服務器的圖像。 任何幫助表示讚賞。 的迴應如下:根據服務器響應動態加載圖像列表

「電器」:

{ 
    "id": 1, 
    "type": "electronic", 
    "make": "2015", 
    "model": "2011", 
    "serialNumber": "19218hdyew", 
    "serviceTagNumber": "hfh251663", 
    "name": "fridge" 
}, 
{ 
    "id": 2, 
    "type": "electronic", 
    "make": "2015", 
    "model": "2011", 
    "serialNumber": "19218hdyew", 
    "serviceTagNumber": "hfh251663", 
    "name": "coffee" 
}, 
{ 
    "id": 3, 
    "type": "electronic", 
    "make": "2015", 
    "model": "2011", 
    "serialNumber": "19218hdyew", 
    "serviceTagNumber": "hfh251663", 
    "name": "washing machine" 
}, 
{ 
    "id": 4, 
    "type": "electronic", 
    "make": "2015", 
    "model": "2011", 
    "serialNumber": "19218hdyew", 
    "serviceTagNumber": "hfh251663", 
    "name": "fan" 
}, 
{ 
    "id": 5, 
    "type": "electronic", 
    "make": "2015", 
    "model": "2011", 
    "serialNumber": "19218hdyew", 
    "serviceTagNumber": "hfh251663", 
    "name": "tv" 
} 
+0

份額響應。 – comeback4you

回答

1

你的服務器返回的圖片名稱,那麼你應該創建一個像

displayimage(String imagename) 

的方法,其中imagename是字符串你得到從服務器。

displayimage方法,你可以使用setimageresource

+0

服務器沒有返回任何圖像,它只是返回圖像名稱。 –

+0

另外我想使用R.drawable –

+0

的圖片請查看我的編輯@dhaminipoornachandra –

0

從服務器獲取所有響應的第一和解析它。有關更多詳細信息,請參閱volleyRetrofit

從服務器獲取響應後,從它獲取imageUrl並執行延遲加載。請參閱Picasso,Fresco,UniversalImageLoader, Glide

要獲取imageUrl,您需要將imageName與實際圖像所在的服務器url相連,或告訴API開發人員在webservice中提供完整的URL圖像。

您可以檢查this線程延遲加載

+0

服務器沒有返回任何URL。 –

+0

然後你需要問他們如果你想從服務器加載它提供的網址。 –

0

用過Android通用圖像,裝載機,這是最佳

聲明

private ImageLoader imageLoader1; 

上創建

imageLoader1 = ImageLoader.getInstance(); 

imageLoader1.init(ImageLoaderConfiguration.createDefault(getActivity())); 

no_image在這裏緩存,沒有任何圖像負荷繪製的圖像

DisplayImageOptions 
      options = new DisplayImageOptions.Builder() 
      .cacheInMemory(true) 
      .cacheOnDisk(true) 
      .showImageOnLoading(R.drawable.no_image) // resource or drawable 
      .showImageForEmptyUri(R.drawable.no_image) // resource or drawable 
      .showImageOnFail(R.drawable.no_image) 
      .considerExifParams(true) 
      .bitmapConfig(Bitmap.Config.RGB_565) 
      .build(); 

    imageLoader1.displayImage(yourpath.replace(" ", "%20"), ivprofile, options); 

的使用也很依賴

與罐子

compile files('libs/universal-image-loader-1.9.5.jar') 

compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.1' 

您可以使用Piccaso也和滑翔也

0

您需要根據服務器響應從繪製顯示圖像。如果你必須保持圖像的資產文件夾,

然後在這裏選擇的是解決方案,

  1. 將您的圖像資產的文件夾。
  2. 然後嘗試下面的代碼。

    AssetManager assetManager = context.getAssets(); 
    InputStream inputStream = null; 
    
    try { 
        inputStream = assetManager.open(imageName + ".extension"); 
    }  
    catch (IOException e) { 
        e.printStackTrace(); 
    } 
    
    if (inputStream != null) { 
        Bitmap bitmap = BitmapFactory.decodeStream(istr); 
        imageView.setImageBitmap(bitmap); 
    } 
    
相關問題