这里主要是为了把获取图片的代码单独出来和UI分开,方便扩展。

public interface Callback<T> {  public void onSuccess(T obj);public void onError(String error);}
线程执行结束后,回调接口,成功后调用onSuccess方法T为通用类型参数,错误调用onError


public class GetBitmapResControl {private Activity activity;public GetBitmapResControl(Activity activity) {this.activity = activity;}public void doGetBitmap(final String url, final Callback<ImageView> callBack) {new Thread() {public void run() {byte b[] = null;try {String _data = getImageData(url);//我这里的测试图片传入的是base64内容格式的.if (_data != null) {b = Base64Util.decode(_data);}} catch (Exception e) {e.printStackTrace();}final Bitmap bitmap = BitmapFactory.decodeByteArray(b, 0, b.length);activity.runOnUiThread(new Runnable() {public void run() {if (bitmap == null) {callBack.onError("获取图片失败");} else {ImageView img = new ImageView(activity);img.setImageBitmap(bitmap);        callBack.onSuccess(img);
}}});};}.start();}        //获取网络中的图片内容private String getImageData(String url) throws ClientProtocolException, IOException { Log.d("getImageData", "URL:" + url);org.apache.http.client.HttpClient client = new DefaultHttpClient();HttpGet httpget = new HttpGet(url);HttpResponse httpResponse = client.execute(httpget);int status = httpResponse.getStatusLine().getStatusCode();if (status == HttpStatus.SC_OK) {Log.d("getImageData", "status:" + status);String strResult = EntityUtils.toString(httpResponse.getEntity());return strResult;}return null;}}

在Activity 中调用

new GetBitmapResControl(this).doGetBitmap("http://x.x.x.x/server/getimg?id=12", new Callback<ImageView>() {@Overridepublic void onSuccess(ImageView obj) {rootView.addView(obj);}@Overridepublic void onError(String error) {Toast.makeText(getApplicationContext(), error, Toast.LENGTH_SHORT).show();}});



更多相关文章

  1. Android(安卓)4.2短信发送流程小记
  2. android 自定义ViewAnimator文字轮播广告控件——自定义控件学习
  3. Android(安卓)DeepLink
  4. Android(安卓)stdio 3.0以上版本将图片文件存入模拟器教程
  5. android 获取apk签名的序列号
  6. android如何将生成的图片保存至手机相册并显示出来
  7. 下载Android(安卓)源码
  8. Android基本组件介绍和生命周期
  9. android fih-mms的实现

随机推荐

  1. 【Android】ExpandableListView 默认展开
  2. android 获取webView高度,设置webView高度
  3. 用Android Studio创建你的第一个Hello Wo
  4. Android开发 Unity3D基础 Android Develo
  5. Android:AsyncTaskUtil 异步简化操作工具
  6. android webview js 交互
  7. android gallery的items的view 的selecto
  8. android客户端 与服务器交互 http
  9. android强大的图片下载和缓存库Picasso
  10. Android 中解决输入法挡住输入框的问题