如何使用textview在html文本中显示图像

时间:2010-12-29 08:15:49

标签: android textview

伙计我有一个显示html文本的textview,里面有image标签。 我想使用imageGetter显示图像,但它只显示一个小蓝框。 几天来我一直在处理这个问题。所以请帮帮我。

我目前的代码就是这个

  TextView textD = (TextView) findViewById(R.id.body);
  textD.setText(Html.fromHtml(Body, imgGetter, null));
  textD.setMovementMethod(new ScrollingMovementMethod());

 private ImageGetter imgGetter = new ImageGetter() {

        public Drawable getDrawable(String source) {


          try{
           InputStream is = (InputStream) new URL(source).getContent();
           Drawable d = Drawable.createFromStream(is, "src name");
           return d;
          }catch (Exception e){
           Log.d("image", imageSource, e);
           return null;
          }

        }
};

2 个答案:

答案 0 :(得分:1)

参考文献说:

  

必须调用setBounds(Rect)方法来告诉Drawable在哪里   它是绘制的,它应该有多大。所有Drawables都应该尊重   请求的大小,通常只是通过缩放他们的图像。一个客户   可以找到一些Drawables的首选大小   getIntrinsicHeight()和getIntrinsicWidth()方法。

http://developer.android.com/reference/android/graphics/drawable/Drawable.html

所以试试这个:

d.setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight());

它会起作用!

答案 1 :(得分:0)

LinearLayout ll = new LinearLayout(this); 
TextView question = new TextView(this);
question.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
question.setTextSize(20);
question.setTextColor(Color.WHITE); 
CharSequence text2 = Html.fromHtml(qstnText, new Html.ImageGetter(){ 
    public Drawable getDrawable(String source){ 
        System.out.println("Source:::"+source); 
        String path = Environment.getExternalStorageDirectory().getAbsolutePath() +source; 
        File f = new File(path); 
        // Bitmap bmp = BitmapFactory.decodeFile(f.getAbsolutePath()); 
        Drawable bmp = Drawable.createFromPath(f.getAbsolutePath());
        bmp.setBounds(0,0,50,50); return bmp; 
    } 
}, null); 
question.setText(text2); 
ll.addView(question);

它对我来说很好......试试吧