使用URL下载网络图片
来源:互联网 发布:js 中什么是全局对象 编辑:程序博客网 时间:2024/06/07 23:01
今天,我们来讲解使用资源定位符(Url)来下载网络图片.由于下载图片属于繁琐操作,我们将其放入新开辟的子线程中。在下面的代码中,由于使用了Handlder来处理UI线程,由于消息机制的原因,可能会造成内存泄漏。为了避免内存泄漏,故在Handler中使用了WeakReference(弱引用)来释放内存。
public class MainActivity extends AppCompatActivity { private WeakReference<MainActivity>weakReference; private Button button; private ImageView imageView; static String path="https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/
u=2237129721,1649030900&fm=23&gp=0.jpg"; private Handler handler=new myHandler(this); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button= (Button) findViewById(R.id.button); imageView= (ImageView) findViewById(R.id.image); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //启动一条新线程,防止UI线程处理耗时操作 new Thread(new Runnable() { @Override public void run() { try { //使用资源定位符,path为指定的图片网址 URL url=new URL(path); //使用资源定位符打开流的操作 InputStream inputStream=url.openStream(); //将读到的流转换成bitmap,用工厂类来解析流。 Bitmap bitmap= BitmapFactory.decodeStream(inputStream); //使用handler的obtainMessage的方法来放置对象obj Message message =handler.obtainMessage(0x123,bitmap); handler.sendMessage(message); } catch (IOException e) { e.printStackTrace(); } } }).start(); } }); } //定义一个Handler处理器,处理接收到的信息,改变ImageView。 //使用软引用,放置内存泄漏 private class myHandler extends Handler { private final WeakReference<MainActivity> weakReference; private myHandler(MainActivity activity) { weakReference = new WeakReference<MainActivity>(activity); } @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(weakReference.get()!=null){ if(msg.what==0x123){ MainActivity.this.imageView.setImageBitmap((Bitmap) msg.obj); } } } }}
阅读全文
0 0
- 使用URL下载网络图片
- 根据url下载网络图片
- java ----URL 从网络下载图片
- java网络编程____使用url下载远程文件(图片,软件等)
- 通过网络Url下载图片并下载到本地相册
- 使用HttpClient下载网络图片
- 使用线程下载网络图片
- Android 使用URL读取网络图片
- Android 使用URL显示网络图片
- Android 使用URL读取网络图片资源
- 安卓使用URL显示网络图片
- 下载url图片到沙盒中
- java 下载URL图片
- URL,下载网页图片。
- iphone:使用NSURLConnection下载网络图片
- iphone:使用NSURLConnection下载网络图片
- 使用HttpURLConnection从网络中下载图片
- python中使用网络爬虫下载图片
- 设计模式(二):策略模式
- kotlin汇总9-在kotlin中调用java
- sklearn特征选择类库使用小结
- 初次使用RTL8710AF开发板的一些心得
- Eclipse插件ObjectAid(UML画图工具)
- 使用URL下载网络图片
- Atom与markdown
- 第三人称摄像机跟随
- 链表的定义,链表的连接,指定节点的删除
- 滑动窗口协议与慢启动
- Kotlin变量和属性(五)
- List,Map,Set基础知识
- 尾部的0(n的阶乘的尾部0的个数)
- div 居中问题