dynamic设置线性布局背景

我想以下列方式dynamic设置线性布局背景:

  1. 通过XMLparsing从url获取图像,然后将该图像存储到SD卡中。

  2. 现在图像保存到SD卡。

  3. 将该图像设置为应用程序中的线性布局背景。

现在我陷入了第三步。 谁能帮忙?

Solutions Collecting From Web of "dynamic设置线性布局背景"

用这个:

Bitmap bmImg = BitmapFactory.decodeStream(is); BitmapDrawable background = new BitmapDrawable(bmImg); linearLayout.setBackgroundDrawable(background); 

另外检查这个: 如何将位图转换为可绘制的Android?

我这样做了:

 private RelativeLayout relativeLayout; 

onCreate

 relativeLayout= (RelativeLayout)findViewById(R.id.relativeLayout); new LoadBackground("http://img.androidcookie.com/android/androidfigure.jpg", "androidfigure").execute(); 

AsyncTask后台 加载图片:

 private class LoadBackground extends AsyncTask<String, Void, Drawable> { private String imageUrl , imageName; public LoadBackground(String url, String file_name) { this.imageUrl = url; this.imageName = file_name; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected Drawable doInBackground(String... urls) { try { InputStream is = (InputStream) this.fetch(this.imageUrl); Drawable d = Drawable.createFromStream(is, this.imageName); return d; } catch (MalformedURLException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } } private Object fetch(String address) throws MalformedURLException,IOException { URL url = new URL(address); Object content = url.getContent(); return content; } @Override protected void onPostExecute(Drawable result) { super.onPostExecute(result); relativeLayout.setBackgroundDrawable(result); } } 

希望这会帮助你。

更简单的方法:

 BitmapDrawable d = new BitmapDrawable("/sdcard/data/image.jpg"); linearLayout.setBackgroundDrawable(d); 

API已弃用,您可以使用下面的代码

 BitmapDrawable background = new BitmapDrawable(getResources(), bitmapImage); linearLayout.setBackground(background); 

尝试使用这个:

 Bitmap bmpOriginal = BitmapFactory.decodeResource(getResources(), R.drawable.img); BitmapDrawable bmpBackground = new BitmapDrawable(getResources(), bmpOriginal) 

您也可以从可绘制的文件夹中设置图像。

 yourView.setBackgroundResource(R.drawable.FILENAME); 

这将FILENAME设置为背景图像。