将网址转换为NetworkOnMainThreadException中的位图
这个问题在这里已经有了答案:
只需按照以下步骤操作
public class MyAsync extends AsyncTask<Void, Void, Bitmap>{
    @Override
    protected Bitmap doInBackground(Void... params) {
        try {
            URL url = new URL(src);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoInput(true);
            connection.connect();
            InputStream input = connection.getInputStream();
            Bitmap myBitmap = BitmapFactory.decodeStream(input);
            return myBitmap;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
}
现在从url访问位图,如下所示 -
MyAsync obj = new MyAsync(){
        @Override
        protected void onPostExecute(Bitmap bmp) {
            super.onPostExecute(bmp);
            Bitmap bm = bmp;
            LinearLayout layout = new LinearLayout(getApplicationContext());
            layout.setLayoutParams(new AbsListView.LayoutParams(250, 250));
            layout.setGravity(Gravity.CENTER);
            ImageView imageView = new ImageView(getApplicationContext());
            imageView.setLayoutParams(new AbsListView.LayoutParams(220, 220));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setImageBitmap(bm);
            layout.addView(imageView);
        }
    };
然后最终执行AsynTask -
obj.execute();
你不应该在你的主线程中进行任何网络调用,就像ankit所说的那样。你在OnCreate()方法中写了所有东西,而是使用AsyncTask。
我建议你去排队NetworkImageView或通用图像加载器。
直接从服务器显示图像。
尝试这个
URL url = new URL("http://....");
Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
只需替换你的Url它为我工作
链接地址: http://www.djcxy.com/p/29545.html