将网址转换为NetworkOnMainThreadException中的位图

这个问题在这里已经有了答案:

  • 我该如何解决android.os.NetworkOnMainThreadException? 49个答案

  • 只需按照以下步骤操作

    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

    上一篇: Convert url to bitmap in NetworkOnMainThreadException

    下一篇: android.os.NetworkOnMainThreadException