Как показать изображения внутри HTML-текста с помощью TextView - PullRequest
1 голос
/ 29 декабря 2010

Ребята, у меня есть textview, который показывает HTML-текст, и внутри него есть тег изображения Я хочу показать изображение с помощью 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 ]

1 голос
/ 05 августа 2011

Ссылка говорит:

Метод 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());

Это будет работать!

0 голосов
/ 06 февраля 2013
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);

Это прекрасно работает для меня ... Попробуйте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...