动态设置线性布局背景

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

  1. 通过XML解析从Web URL获取图像,然后将该图像存储到SD卡中。

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

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

现在我陷入了第三步。 有人可以帮忙吗?

  • 用自定义animation显示活动
  • 评级栏只显示一半星星,而不是全明星
  • onUpdate没有在widget中调用,即使我看到android.appwidget.action.APPWIDGET_UPDATE意图在接收
  • 在TextView或WebView中突出显示文本
  • 在棒棒糖上没有着色的小工具
  • 可以在TextView文本中加下划线
  • 查看或片段库来编写常见数据types的用户界面
  • 如何捕获ListActivity的Listeview项的长按事件?
  • 用这个:

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

    还要检查一下: 如何在Android中将Bitmap转换为Drawable?

    我这样做了:

     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 { 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) 

    使用@ Deimos的答案,但是像这样,因为现在有些方法已被弃用

     Bitmap bmImg = BitmapFactory.decodeStream(is); BitmapDrawable background = new BitmapDrawable(context.getResources(), bmImg); linearLayout.setBackground(background); 

    您还可以从drawable文件夹中设置图像。

     yourView.setBackgroundResource(R.drawable.FILENAME); 

    将FILENAME设置为背景图像。