我正在使用Html.fromHtml()
来获取内容并将其显示在我的活动上。为此,我使用的是ImageGetter。我有一个问题,如果手机无法连接到互联网,应用程序崩溃,因为图片无法加载。相反,我想在我的ldpi/mdpi/...etc
文件夹中保存一个占位符图像,只要无法加载图片,就会插入该图像。
我的ImageGetter使用URLImageParser,它具有以下onPostExecute()方法:
@Override
protected void onPostExecute(Drawable result) {
//check to see if an image was found (if not could
//be due to no internet)
if(result ==null){
//the drawable wasn't found so use the image not found
//png
Drawable imageNotFound = a.getResources().getDrawable(R.drawable.image_not_found);
result = imageNotFound;
}
intrinsicHeight = result.getIntrinsicHeight();
intrinsicWidth = result.getIntrinsicWidth();
DisplayMetrics dm = new DisplayMetrics();
((WindowManager) c.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels -50;
int height = width * intrinsicHeight / intrinsicWidth;
result.setBounds(0, 0, 0 + width, 0
+ height);
urlDrawable.setBounds(0, 0, 0+width, 0+height);
// change the reference of the current drawable to the result
// from the HTTP call
urlDrawable.drawable = result;
// redraw the image by invalidating the container
URLImageParser.this.container.invalidate();
// For ICS
URLImageParser.this.container.setHeight((URLImageParser.this.container.getHeight()
+ height));
// Pre ICS
URLImageParser.this.container.setEllipsize(null);
}
我只是在此方法的顶部插入了if (result==null)
语句。但现在如果可以加载图片,应用程序可以正常运行。如果无法加载图像并使用占位符,我会得到一些奇怪的行为。
scrollview永远不会滚动到屏幕的底部,我不知道为什么会这样。从理论上讲,我的imageNotFound drawable(这是一个png文件)与从互联网上下载的文件之间应该没有区别。滚动视图只会略微移动。
我不知道造成这种情况的原因。在线搜索时,大多数人似乎遇到了RelativeLayouts的问题。我无法找到任何有关drawables或TableLayouts的人。
布局的我的xml如下:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:paddingBottom = "0dip"
android:orientation = "vertical" >
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="0,1"
android:shrinkColumns="0,1"
android:id = "@+id/SharedTableLayout"
android:paddingBottom = "0dip" >
<TableRow
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:paddingBottom = "0dip">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id = "@+id/SharedTableContent"
android:layout_span="2"
android:gravity = "left"
android:paddingLeft = "10dip"
android:paddingRight = "10dip"
android:paddingTop = "20dip"
android:paddingBottom = "0dip"/>
</TableRow>
</TableLayout>
</ScrollView>
我真的很感激任何有关这方面的建议,我已经坚持了好几个星期。
感谢您的时间
带有id SharedTableContent的TextView显示一个使用Html.fromHtml()从html转换的字符串,因此图像可能被文本包围,这意味着我无法将解决方案硬编码到xml中,因为无法知道有多少图像将提前下载,这些都是以编程方式完成的。
答案 0 :(得分:0)
尝试将scrollview的布局宽度更改为match_parent。
机器人:layout_width = “match_parent” 机器人:layout_height = “match_parent”
或试试这个
<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:id="@+id/ScrollView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<HorizontalScrollView android:id="@+id/HorizontalScrollView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView android:id="@+id/ImageView01"
android:src="@drawable/pic"
android:isScrollContainer="true"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:adjustViewBounds="true">
</ImageView>
</HorizontalScrollView>
</ScrollView>