0

通过阅读以下帖子,我在 Html.fromHtml 方法中实现了 ImageGetter:Html.fromHtml questionHtml.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 标签中的字符串正在被识别,并且我已经通过调试验证了这一点。

4

1 回答 1

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");

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

于 2013-08-12T04:22:54.650 回答