Android – 如何从资源中显示图像?

前端之家收集整理的这篇文章主要介绍了Android – 如何从资源中显示图像?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我无法显示保存在res / drawable文件夹中的图像.
我使用 ImageGetter来做到这一点.代码如下:
ImageGetter imageGetter3 = new ImageGetter() {                
    public Drawable getDrawable(String source) { 
        int id=0; 
        if (source.equals("smiley")) { 
            id = R.drawable.smiley; 
        } 
        Drawable d = getResources().getDrawable(id); 
        d.setBounds(0,d.getIntrinsicWidth(),d.getIntrinsicHeight()); 
        return d; 
    } 
};

directions += "Je bent bij lokaal " + vertrek.getNaam() + "\n" 
           + "Sta met je rug voor de deur\n" 
           + Html.fromHtml("<img src=\"smiley\">",imageGetter3,null) + " Draai naar links\n";

我在跑步时在屏幕上看到的是一个带有“obj”文字的小方块.
那有什么不对?无法读取图像或其他内容
如何显示图像?

老实说,我已经Google了很多,并尝试过ImageGetter的其他方法,但是它们似乎都没有用,我也试过了,它们不起作用:

ImageGetter imageGetter2 = new ImageGetter() { 
 public Drawable getDrawable(String source) { 
      Drawable d = null; 
      d = Drawable.createFromPath(source); 
      d.setBounds(0,d.getIntrinsicHeight()); 
      return d; 
 } 
};

ImageGetter imageGetter = new ImageGetter() {                
 public Drawable getDrawable(String source) { 
     Drawable drawFromPath; 
     int path = Route.this.getResources().getIdentifier(source,"drawable","com.prj56.tracingapp"); 
     drawFromPath = (Drawable) Route.this.getResources().getDrawable(path); 
     drawFromPath.setBounds(0,drawFromPath.getIntrinsicWidth(),drawFromPath.getIntrinsicHeight()); 
     return drawFromPath; 
 } 
};

================================================== =======
if(….){
ImageView iv1 = new ImageView(this);
iv1.setImageResource(R.drawable.smiley);

directions += "Je bent bij lokaal " + vertrek.getNaam() + "\n" 
       + "Sta met je rug voor de deur\n";
       HERE COMES THE IMAGE! BUT HOW TO DO THIS? It's within directions textview...
    directions += " Draai naar links\n";

}

解决方法

2016年12月12日更新:

getResources().getDrawable()在api 22中已弃用,因此您现在应该使用ContextCompat.getDrawable,例如

Drawable d = ContextCompat.getDrawable(context,R.drawable.smiley);

在您的活动中,您可以调用方法将Drawable资源作为Drawable对象

Drawable d = getResources().getDrawable(R.drawable.smiley);

如果要在ImageView中显示可绘制的内容,可以执行以下操作:

ImageView i = new ImageView(this);
i.setImageResource(R.drawable.smiley);

或者在你的xml文件

<ImageView   
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:src="@drawable/smiley"/>

猜你在找的Android相关文章