来自 url 的 LinearLayout setBackgroundDrawable 位图

Posted

技术标签:

【中文标题】来自 url 的 LinearLayout setBackgroundDrawable 位图【英文标题】:LinearLayout setBackgroundDrawable bitmap from url 【发布时间】:2017-05-20 18:15:09 【问题描述】:

我正在尝试将背景图像从 URL 设置为带有位图的线性布局,但 BackgroundDrawable() 方法已被弃用,我找不到任何替代方法。

private LinearLayout linearLayout;
linearLayout = (LinearLayout) findViewById(R.id.layout);
Drawable drawableBitmap = new BitmapDrawable(getApplicationContext().getResources(), getBitmapFromURL(url));
linearLayout.setBackgroundDrawable(drawableBitmap);

【问题讨论】:

setBackgroundDrawable() 在 API 级别 16 中已替换为 setBackground(),如 the documentation 中所述。 setBackgroundDrawable() deprecated的可能重复 【参考方案1】:

试试这个解决方案。你的位图放在这里,

LinearLayout bg = (LinearLayout) findViewById(R.id.linearlayout);
BitmapDrawable ob = new BitmapDrawable(getResources(), bitmap)
bg.setBackground(ob);

【讨论】:

【参考方案2】:

使用毕加索图书馆

           private LinearLayout linearLayout;
           linearLayout = (LinearLayout) findViewById(R.id.layout);
           ImageView img = new ImageView(this);
           Picasso.with(this)
          .load(imageUri)
          .fit()
          .centerCrop()
          .into(img, new Callback() 
                    @Override
                    public void onSuccess()                             
                    linearLayout.setBackgroundDrawable(img.getDrawable());
                    

                    @Override
                    public void onError() 

                    
                );

【讨论】:

FWIW,setBackgroundDrawable() 在 API 级别 16 中已替换为 setBackground()

以上是关于来自 url 的 LinearLayout setBackgroundDrawable 位图的主要内容,如果未能解决你的问题,请参考以下文章

如何在LinearLayout中使用edittext在set按钮下列出视图

在这个计算器中哪个布局应该替换 LinearLayout

如何将自定义视图插入 XML 的 LinearLayout

以编程方式获取 TextView 的宽度

来自Settings.settings变量的WPF触发器

如何从 LinearLayout 中删除所有 LinearLayout?