0

我想在android中获取图像宽度和高度并相应地加载购买我的下面的代码在2.3.3中工作正常但是当我在更高版本(4.0)中测试时它的高度和宽度给出空指针异常......下面是我的代码...

           Drawable drawable = null; 
           drawable = LoadImageFromWebOperations(logo_url.replace(" ", "%20"));
           System.out.println("Width" + drawable.getMinimumWidth());
           System.out.println("Height" + drawable.getMinimumHeight()); 
           int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, drawable.getMinimumWidth(), mCtx.getResources().getDisplayMetrics());
           int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, drawable.getMinimumHeight(), mCtx.getResources().getDisplayMetrics());
           client_logo.setMinimumHeight(height);
           client_logo.setMinimumWidth(width);
           client_logo.setImageDrawable(drawable); 


            public Drawable LoadImageFromWebOperations(String url){
System.out.println(url);

    try{
        InputStream is = (InputStream) new URL(url).getContent();
        Drawable d = Drawable.createFromStream(is, "src name");
        return (d);
    }catch (Exception e) {
        //System.out.println("Exc="+e);
        return null;
    }
}
4

1 回答 1

0

从 API 11 开始,如果您在 UI 线程上执行此代码,网络访问将抛出NetworkOnMainThreadException. 您没有发布您的 logcat 输出(这将非常有帮助),但我怀疑这就是正在发生的事情。结果,LoadImageFromWebOperations将返回null,当您尝试访问可绘制属性时,您将获得 NPE。

您需要在工作线程中运行此代码。请参阅文章保持您的应用响应

于 2013-02-05T11:49:17.537 回答