在android中设置位图从url作为操作栏主页图标

我想从网址下载一个图像,并在运行时将其设置为我的操作栏中的主图标。 我正在使用一个AsyncTask来执行它,但似乎并没有改变它。 有任何想法吗?

class getProfilePicture extends AsyncTask<Void, Void, Void> { protected Void doInBackground(Void... params) { try { URL url; url = new URL("http://www.i2clipart.com/cliparts/2/a/3/2/clipart-fcrc-logo-handshake-2a32.png"); HttpURLConnection conn = (HttpURLConnection) url .openConnection(); conn.setDoInput(true); conn.connect(); InputStream is = conn.getInputStream(); image = BitmapFactory.decodeStream(is); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } protected void onPostExecute() { // TODO: check this.exception Resources res = getResources(); BitmapDrawable icon = new BitmapDrawable(res, image); getSupportActionBar().setIcon(icon); //getSupportActionBar().setLogo(icon); } } 

你可以试试这个kotlin代码

 Glide.with(this).load(imageUrl).asBitmap().into(object : SimpleTarget<Bitmap>() { override fun onResourceReady(resource: Bitmap?, glideAnimation: GlideAnimation<in Bitmap>?) { val drawable = BitmapDrawable(resources, resource) supportActionBar?.setIcon(drawable) } })