我的问题如下:我尝试将图像加载到这样的文本视图:
URLImageParser p = new URLImageParser(textView, this);
Spanned htmlSpan = Html.fromHtml(textWithImages, p, null);
textView.setText(htmlSpan);
我按照这个例子https://stackoverflow.com/a/7442725/1835251
如果我从网上加载图像,它会完美运行。
我修改了一些代码以从 SDCard 加载某些图像。
在异步任务的“doInBackground”方法中,我实现了这个:
@Override
protected Drawable doInBackground(String... params) {
String source = params[0];
Drawable d = null
if(source != null) {
if(source.startsWith("/myApp/images/")) {
localImage = true;
}
}
if(localImage) {
String sdcard = Environment.getExternalStorageDirectory().getAbsolutePath();
d = Drawable.createFromPath(sdcard+source);
d.setBounds(0, 0, 0 + (int)(d.getIntrinsicWidth()), 0
+ (int) (d.getIntrinsicHeight()));
localImage = false;
} else {
// load images from internet
}
return d;
localImage 是一个布尔值,用于确定当前源“指向”来自 Internet 的图像还是本地图像。
如前所述:从互联网加载图像效果很好。
但是当我从SDCard加载图像时,有时会发生并非所有图像都显示的情况。
整个文本(包括图像)被剪切,就好像它没有正确加载一样。
我发现这种情况在三星 Galaxy S3 上比在三星 S Plus 上更常见。
在 S3 上,我有时只加载 1 或 1.5 张图像,其余的会被剪切。
S Plus 总是加载所有 4 张图像,但很少剪切文本的最后 2 或 3 个句子。
我认为这是 AsyncTask 的一种时间问题,但我以前从未使用过它。
我知道这是一个非常大的帖子,但我希望有人仍然可以帮助我。
最好的祝福
西吉