如何让HTML ImageGetter正常工作

时间:2013-08-11 02:37:55

标签: android string image path html-parsing

我已经通过阅读以下帖子在Html.fromHtml方法中实现了ImageGetter:Html.fromHtml problemHtml.ImageGetter。 以下是ImageGetter的代码:

if (mItem != null) {
        ((TextView) rootView.findViewById(R.id.exercise_detail))
                .setText(Html.fromHtml(mItem.description, new ImageGetter(){ 

                @Override public Drawable getDrawable(String source) {
                      Drawable drawFromPath;
                      int path =
                            ExerciseDetailFragment.this.getResources().getIdentifier(source, "drawable",
                                    "com.package.ChaitanyaVarier.mytrainer2go");
                      drawFromPath = (Drawable) ExerciseDetailFragment.this.getResources().getDrawable(path);
                      drawFromPath.setBounds(0, 0, drawFromPath.getIntrinsicWidth(),
                         drawFromPath.getIntrinsicHeight());
                      return drawFromPath;
                   }
                }, null));

    }

以下是名为description(在另一个活动文件中)的字符串中的HTML,它成为路径:

<img src =\"file:///android_asset/img/situp1.png\">

我已将名为situp1.png的图像放在名为img的文件夹中,该文件夹位于assets文件夹中。

问题是我的HTML中的路径没有被正确解析,当我尝试加载包含图像的项目时,应用程序崩溃了。我知道img标签中的字符串已被识别,我通过调试验证了这一点。

1 个答案:

答案 0 :(得分:0)

我解决这个问题的方法是改变

<img src =\"file:///android_asset/img/situp1.png\"> 

<img src=\"situp1\"> 

因为它已经在资源文件夹中,因此是一个可绘制的。

我也不得不改变

ExerciseDetailFragment.this.getResources().getIdentifier(source, "drawable", "com.package.ChaitanyaVarier.mytrainer2go"); 

ExerciseDetailFragment.this.getResources().getIdentifier(source, "drawable", "com.ChaitanyaVarier.mytrainer2go");

我遇到了一个相当愚蠢的问题,只需要更好地理解代码。