Android之异步加载网络图片
2015-12-19 10:09
696 查看
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.android_imagetest.MainActivity" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginLeft="60dp" android:layout_marginTop="40dp" /> </RelativeLayout>
一定不要忘记添加网络访问权限
<uses-permission android:name="android.permission.INTERNET"/>
package com.example.android_imagetest; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import android.support.v7.app.ActionBarActivity; import android.app.ProgressDialog; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.ImageView; public class MainActivity extends ActionBarActivity { private ImageView imageView; private ProgressDialog dialog; private final String IMAGE_PATH="https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView=(ImageView) this.findViewById(R.id.imageView1); dialog=new ProgressDialog(MainActivity.this); dialog.setTitle("提示"); dialog.setMessage("Loading..."); new MyTask().execute(IMAGE_PATH); } public class MyTask extends AsyncTask<String, Void, Bitmap>{ @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); dialog.show(); } @Override protected Bitmap doInBackground(String... params) { // TODO Auto-generated method stub Bitmap bitmap=null; try { URL url=new URL(params[0]); HttpURLConnection connection=(HttpURLConnection) url.openConnection(); connection.setDoInput(true); connection.connect(); InputStream inputStream=connection.getInputStream(); bitmap=BitmapFactory.decodeStream(inputStream); inputStream.close(); }catch(Exception e){ // TODO: handle exception e.printStackTrace(); } return bitmap; } @Override protected void onPostExecute(Bitmap result) { // TODO Auto-generated method stub super.onPostExecute(result); imageView.setImageBitmap(result); dialog.dismiss(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
运行效果图
相关文章推荐
- 网络编程1-TCP编程(socket)
- 重写、覆盖、重载、隐藏、多态几个概念的区别分析 http://blog.csdn.net/yukin_xue/article/details/7437742
- xmlns:android="http://schemas.android.com/apk/res/android" 的含义
- Linux网络进程监控工具nethogs
- 大黄蜂(HORNET):比Tor更快更安全的匿名网络
- HttpWebRequest中的ContentType详解
- C++的不同数据类型值的比较语句 http://www.nowcoder.com/profile/380772/test/2198830/25642?onlyWrong=0
- 【Java基础】Java网络编程基础知识
- 菜鸟教程 http://www.runoob.com/
- 网络基础知识-3
- 网络请求的封装历程
- Apache HttpClient4.5(一)
- 服务器socket与安卓端socket对接
- http://thecodeplayer.com/
- <网络编程培训之七> 实现Traceroute
- PHP 版HTTP GET,POST,上传文件
- Unix网络编程基本函数
- Android之OKHttp使用总结
- 网络编程
- poj 2391 二分 拆点 最大值最小值网络流