获取网络图片并显示(并且对于在改变ui等元素必须在andoriod的主线程中)
来源:互联网 发布:博图软件使用 编辑:程序博客网 时间:2024/06/05 04:11
转自:http://bbs.9ria.com/thread-232411-1-1.html (原来的转载404了。。)
转自: http://wenku.baidu.com/link?url=kJ_oygkhuzMTD5_HM3Odu_hf-dqPfLKUIHQ8KBG12VWYW7bJEIeeYL38K02uIgSm0MruiILqS1CWkRzXG-y0fPwXV44sTAbW6zwYzxK8wQG (显示网络图片)
第二个网站的代码直接修改后加在了我的项目里。关于显示一张在线的图片。但是按照我原来的思路,会报一个异常,而且在线的图片无法正常显示,我上网查询过了资料,原来是因为在主线程里最好不要做网络请求,那么我将相应的代码移到自己开启的一个线程里之后,却发生另一个错误,导致程序崩溃,原来是在其他的非主线程里操作ui对象会导致程序错误。
当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理与UI相关的事件,如:用户的按键事件,用户接触屏幕的事件以及屏幕绘图事件,并把相关的事件分发到对应的组件进行处理。所以主线程通常又被叫做UI线程。
比如说从网上获取一个图片,在一个ImageView中将其显示出来,这种涉及到网络操作的程序一般都是需要开一个线程完成网络访问,但是在获得图片后,是不能直接在网络操作线程中调用ImageView的相关方法的,因为其他线程中是不能直接访问主UI线程成员 。
完整代码:
注意的是:Manifest.xml文件中,要声明网络权限。
java代码
同时具体的解决在我的项目代码里也已经解决了。参见自己的安卓radio项目。
- 获取网络图片并显示(并且对于在改变ui等元素必须在andoriod的主线程中)
- iOS 为什么必须在主线程中操作UI
- 为什么必须在主线程中操作UI
- iOS 为什么必须在主线程中操作UI
- Android显示系统之View与SurfaceView更新屏幕的区别.对于View.则是在UI主线程中更新画面.SurfaceView更新屏幕,是在非UI线程(主线程)中实现SurfaceHolde
- android网络下载图片并且显示在图库中
- Android如何获取网络上的图片并且显示在ImageView上
- Toast在非UI主线程的其他线程中显示报错
- Android网络获取图片保存到本地,并在ViewPager中显示图片
- android 获取网络图片并在Imageview上显示
- android 获取网络图片并在Imageview上显示
- 关于在UI中刷新主线程的问题
- 不要在UI主线程中进行耗时的操作
- Android 通过url获取网络图片并显示在ImageView中
- 在Android中如何获取视频的第一帧图片并显示在一个ImageView中
- 在Android中如何获取视频的第一帧图片并显示在一个ImageView中
- Handler post()等在子线程中更新主线程的UI的方法使用小汇
- 如何将HTML标签 等在一个DOM元素中绑定并且正常显示
- PHP实现伪静态化页面的具体实现方式
- 新的起点
- JAVA反射机制
- 百度地图(SDK v3.1.1)和百度定位(SDKv4.2)的实现!
- TextView 借助Linkify,使用自定义模式设置链接
- 获取网络图片并显示(并且对于在改变ui等元素必须在andoriod的主线程中)
- MSSQL 加密 使用 sys.fn_VarBinToHexStr() hashbytes()
- C# 获取鼠标在屏幕中的颜色和位置
- iOS国际化
- ALSA声卡驱动一之ALSA架构简介
- php获取用户IP的三种方式的区别
- 善用VS中的Code Snippet来提高开发效率
- liu xiong hui
- Lua变量生命周期