我正在显示来自 sqlite db 的数据。数据库中的数据以html形式存储。数据包含用于显示图像的图像标签。我可以显示数据,但我怎样才能显示图像呢?我的图像存储在服务器中。
我的代码:
((TextView)view.findViewById(R.id.tv_text)).setText(Html.fromHtml(listItem.gettext()+""));
从上面的行中,我正在显示来自数据库的数据。现在,我需要显示服务器中的图像。我怎样才能做到这一点?
试试我的代码。希望能帮助到你
TextView mDetail;
ProgressBar mProgressBar;
String body;
Handler handler;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act_recipe_detail);
getActionBar().setDisplayHomeAsUpEnabled(true);
if (this.getIntent().getStringExtra("body") != null)
body = this.getIntent().getStringExtra("body");
mDetail = (TextView) this.findViewById(R.id.tv_recipe_detail);
if (this.getIntent().getStringExtra("body") != null)
body = this.getIntent().getStringExtra("body");
mDetail.setText(Html.fromHtml(body));
mProgressBar = (ProgressBar) this.findViewById(R.id.bar);
mDetail.setMovementMethod(ScrollingMovementMethod.getInstance());// 皛
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if (msg.what == 0x101) {
mProgressBar.setVisibility(View.GONE);
mDetail.setText((CharSequence) msg.obj);
}
super.handleMessage(msg);
}
};
Thread t = new Thread(new ImageTask());
t.start();
mProgressBar.setVisibility(View.VISIBLE);
}
class ImageTask implements Runnable {
Message msg = Message.obtain();
@Override
public void run() {
ImageGetter imageGetter = new ImageGetter() {
@Override
public Drawable getDrawable(String source) {
// TODO Auto-generated method stub
URL url;
Drawable drawable = null;
try {
url = new URL(source);
drawable = Drawable.createFromStream(
url.openStream(), null);
int scale_y = MAX_HEIGHT/drawable.getIntrinsicHeight();
drawable.setBounds(0, 0,
drawable.getIntrinsicWidth()*scale_y,
drawable.getIntrinsicHeight()*scale_y);
} catch (MalformedURLException e) {
Log.e(TAG, "MalformedURLException" + e.toString());
} catch (IOException e) {
Log.e(TAG, "IOException" + e.toString());
}
return drawable;
}
};
CharSequence test = Html.fromHtml(body, imageGetter, null);
msg.what = 0x101;
msg.obj = test;
handler.sendMessage(msg);
}
}