2014-02-20 36 views
1

在我的應用程序中,我需要從幾個網址加載圖像到一個GridView。 問題是,我的網址包含阿拉伯字符,圖像沒有下載。 我測試了我的應用程序與英文網址,它的工作正常,但我有阿拉伯語的問題。 我已經嘗試過這種解碼URL,但它不工作:從阿拉伯字符的URL加載圖像

String result = URLDecoder.decode(imageUrls.get(j), "UTF-8"); 

也試過這樣:

connection.setRequestProperty("Accept-Charset", "UTF-8"); 
connection.setRequestProperty("Content-Type", "text/plain; charset=utf-8"); 

片段下載的位圖:

for(j=0; j<imageUrls.size(); j++){ 
    try { 
    String result = URLDecoder.decode(imageUrls.get(j), "UTF-8"); 
     URL url=new URL(result); 
     HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
     connection.setRequestProperty("Accept-Charset", "UTF-8"); 
     connection.setRequestProperty("Content-Type", "text/plain; charset=utf-8"); 
     connection.setDoInput(true); 
     connection.connect(); 
     InputStream input = connection.getInputStream(); 
     Bitmap bitmap = BitmapFactory.decodeStream(input); 
     btarray.add(bitmap); 
    } catch (Exception ex) { 

    } 
    } 

,並有

imageview.setImageBitmap(btarray.get(position)); 

在ImageAdapter getView方法中。

網址是這樣的: http://www.dalass.com/1/ShowPage.php?View=252-%D9%86%D8%A7%D8%AE%D9%86-DALASS-%D8%AF%D8%A7%D9%84%D8%A7%D8%B3.jpg

有人幫助請

+1

你得到什麼異常? – Jorgesys

+0

我有Gridview中的空圖像的圖像 –

+0

使用Shutterbug庫。它易於使用和可靠。 https://github.com/applidium/Shutterbug –

回答

3

您必須使用Uri.encode(String)

//String result = URLDecoder.decode(imageUrls.get(j), "UTF-8"); 
    String result = Uri.encode(imageUrls.get(j)); 
    URL url = new URL(result); 
+0

通過使用解碼我有imageviews蒙空圖像,但是當使用編碼我有一個空白的gridview沒有任何imageview –

+1

我發現問題是與網址;這是一個網址,而不是圖片網址。通過修復這個錯誤編碼正確工作。 –

+0

我有完全相同的問題,你能告訴我你如何修復它 – H4F

0
Uri uri = Uri.parse(url); 
String encodeUriString = Uri.encode(uri.getLastPathSegment()); 
String uriString = uri.toString().replace(uri.getLastPathSegment(), encodeUriString); 
Log.d(TAG, uriString);