Android AsyncTack 异步任务实例详解
发布时间:2016-11-27 11:51:13 所属栏目:大数据 来源:站长网
导读:Android AsyncTack 异步任务 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; 这里写一个小实例,来学习巩固Android AsyncTack 异步任务的知识,以便在项目中使用。 介绍一下如何使用 1, 继承AsyncTask public class MyTask extends A
图片加载器(通用型) /** * Created by Lulu on 2016/8/31. * 图片网络加载器 * 下载成功返回Bitmap * 否则返回null */ public class ImageLoader extends AsyncTasklt;String, Void, Bitmapgt;{ private ImageView image; public ImageLoader(ImageView image) { this.image = image; image.setImageResource(R.mipmap.ic_launcher); } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected Bitmap doInBackground(String... params) { String url = params[0]; try { HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setRequestMethod("GET"); connection.setDoInput(true); int code = connection.getResponseCode(); if (code == 200) { InputStream is = connection.getInputStream(); return BitmapFactory.decodeStream(is); } } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); if (bitmap != null) { image.setImageBitmap(bitmap); } else { image.setImageResource(R.mipmap.failed); } } } 4, 测试Activity 注意: 看如何解决大图在webView中不左右滑动的问题! public class Main2Activity extends AppCompatActivity implements NetWorkTask.Callbacklt;Entrygt;{ private WebView web; private ImageView image; //解决大图在webView中不左右滑动的问题 private static final String CSS = "lt;stylegt;img{max-width:100%} lt;/stylegt;"; private String title; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); web = (WebView) findViewById(R.id.main2_web); image = (ImageView) findViewById(R.id.main2_image); new NetWorkTasklt;gt;("http://www.tngou.net/api/top/show#63;id=13122", Entry.class).execute(this); } @Override public void onSuccess(Entry t) { web.loadDataWithBaseURL("", t.getMessage(), "text/html; charset=utf-8", "UTF-8", null); new ImageLoader(image).execute("http://img.blog.csdn.net/20160829134937003"); } @Override public void onFailed(Exception e) { web.loadDataWithBaseURL("", "加载失败", "text/html; charset=utf-8", "UTF-8", null); } } 5.效果图: 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |