2012-08-23 45 views
1

我在我的android应用程序从服务器下载图像时遇到问题。如果我尝试从https://www.morroccomethod.com/components/com_virtuemart/shop_image/category/resized/Trial_Sizes_4e4ac3b0d3491_175x175.jpg 图像没有在android 2.3.3及以上下载android版本

我的代码下载图像 -

bitmap = BitmapFactory.decodeStream((InputStream) new URL(url) 
       .getContent()); 

它返回null意味着图像不下载4.0.3上的图像,但成功下载的2.2 我觉得有可能是操作系统版本的问题。

现在我想要任何人来帮助和指导我一样。

+0

检查你的InputStream空在这里与Android 4.0.3或没有,以及为什么它采用的是Android 2.2 – Zoombie

回答

1

写下面的代码到你的活动在setcontentview()之后.java文件的onCreate方法。

if (android.os.Build.VERSION.SDK_INT > 9) { 
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
    StrictMode.setThreadPolicy(policy); 
} 
+0

@NandlalVirani昨天我解决了我使用这段代码的问题。 –

+0

你可以在你的代码https://www.morroccomethod中试试这个图片的URL。com/components/com_virtuemart/shop_image/category/resized/Trial_Sizes_4e4ac3b0d3491_175x175.jpg? –

+0

是的,我在这里和之后发布解决方案。 –

1

在2.2和4.0.0之间,您可以在UI线程上做些什么改变。

从你的代码片段我不能告诉你是这样做的线程,但我希望这是同样的问题。

尝试使用AsyncTask加载图像,因为您无法在UI线程上执行此http操作。

+0

我已经使用AsyncTask.I我能够从https下载相同的图像做了它没有返回返回null:// www.morroccomethod.com/mm/12.jpg但不是从https://www.morroccomethod.com/components/com_virtuemart/shop_image/category/resized/Trial_Sizes_4e4ac3b0d3491_175x175.jpg。我认为有不同的Android版本的文件名问题。 –

1

请确认UI线程异常网络,并确保您使用的是AsyncTask。尝试与AsyncTask相同的代码,这将帮助你。

+0

我已经使用AsyncTask做了它。我可以从https://www.morroccomethod.com/mm/12.jpg下载相同的图像,但不能从https://www.morroccomethod.com/components/com_virtuemart/shop_image下载。 /category/resized/Trial_Sizes_4e4ac3b0d3491_175x175.jpg。我认为有不同的Android版本的文件名问题 –

1

试试看看这个代码。

try 
     { 
      imageView.setImageDrawable(grabImageFromUrl(imageUrl)); 
     } 
     catch (Exception e) 
     { 
      Log.i("CATCH", "ImageDrawable"); 
      e.printStackTrace(); 
     } 

和方法的代码::

private Drawable grabImageFromUrl(String imageUrlInput) throws MalformedURLException, IOException, Exception 
    { 
     return Drawable.createFromStream((InputStream)new URL(imageUrlInput).getContent(), "src"); 
    } 

我创造了这个代码给你,试试它的工作在我结束...

import java.io.IOException; 
import java.io.InputStream; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.net.URLConnection; 
import android.app.Activity; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.os.Bundle; 
import android.widget.ImageView; 

public class image extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Bitmap bitmap = DownloadImage("https://www.morroccomethod.com/components/com_virtuemart/shop_image/category/resized/Trial_Sizes_4e4ac3b0d3491_175x175.jpg"); 
     ImageView img = (ImageView) findViewById(R.id.img); 
     img.setImageBitmap(bitmap); 
    } 

    private InputStream OpenHttpConnection(String urlString) throws IOException { 
     InputStream in = null; 
     int response = -1; 

     URL url = new URL(urlString); 
     URLConnection conn = url.openConnection(); 

     if (!(conn instanceof HttpURLConnection)) 
      throw new IOException("Not an HTTP connection"); 

     try { 
      HttpURLConnection httpConn = (HttpURLConnection) conn; 
      httpConn.setAllowUserInteraction(false); 
      httpConn.setInstanceFollowRedirects(true); 
      httpConn.setRequestMethod("GET"); 
      httpConn.connect(); 
      response = httpConn.getResponseCode(); 
      if (response == HttpURLConnection.HTTP_OK) { 
       in = httpConn.getInputStream(); 
      } 
     } catch (Exception ex) { 
      throw new IOException("Error connecting"); 
     } 
     return in; 
    } 

    private Bitmap DownloadImage(String URL) { 
     Bitmap bitmap = null; 
     InputStream in = null; 
     try { 
      in = OpenHttpConnection(URL); 
      bitmap = BitmapFactory.decodeStream(in); 
      in.close(); 
     } catch (IOException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 
     return bitmap; 
    } 
} 
+0

希望如果它适合你兄弟。 – Harpreet

+0

使用您的代码,我可以从morroccomethod.com/mm/12.jpg下载相同的图像,但不能从https://www.morroccomethod.com/components/com_virtuemart/shop_image/category/resized/Trial_Sizes_4e4ac3b0d3491_175x175.jpg下载。我认为有文件名问题。 –

+0

如果**网址**在浏览器中显示的图片比它能够下载的图片显示的更多,但您仍然与其所有者或开发者交谈,螨虫的名称有问题。 – Harpreet

相关问题