android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Application Not Responding)对话框的情况。对于这种情况,一般的方法就是耗时操作用线程来实现。下面列三种获取url图片的方法:
1.直接获取:(容易:ANR,不建议)
mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;
Drawable drawable = loadImageFromNetwork(IMAGE_URL);
mImageView.setImageDrawable(drawable) ;
公用方法:
private Drawable loadImageFromNetwork(String imageUrl)
{
Drawable drawable = null;
try {
// 可以在这里通过文件名来判断,是否本地有此图片
drawable = Drawable.createFromStream(
new URL(imageUrl).openStream(), "image.jpg");
} catch (IOException e) {
Log.d("test", e.getMessage());
}
if (drawable == null) {
Log.d("test", "null drawable");
} else {
Log.d("test", "not null drawable");
}
return drawable ;
}
2. 后台线程获取url图片:
mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;
new Thread(new Runnable(){
Drawable drawable = loadImageFromNetwork(IMAGE_URL);
@Override
public void run() {
// post() 特别关键,就是到UI主线程去更新图片
mImageView.post(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
mImageView.setImageDrawable(drawable) ;
}}) ;
}
}).start() ;
3.AsyncTask获取url图片
mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;
new DownloadImageTask().execute(IMAGE_URL) ;
private class DownloadImageTask extends AsyncTask<String, Void, Drawable>
{
protected Drawable doInBackground(String... urls) {
return loadImageFromNetwork(urls[0]);
}
protected void onPostExecute(Drawable result) {
mImageView.setImageDrawable(result);
}
}
比较三种方法,感觉代码简洁方面用第三方法不错。
分享到:
相关推荐
总结来说,Android中获取网络图片涉及到网络请求、Bitmap解码、内存管理和用户体验优化。使用现代库如Glide和Picasso可以简化这个过程,同时提供更好的性能和功能。在实际开发中,应根据项目需求选择最适合的方法。
总之,Android获取网络图片的关键在于正确使用线程模型来分离UI更新和网络请求,同时结合合适的图片加载库来优化性能。通过Thread和Handler的组合,我们可以实现在不阻塞主线程的情况下,安全、有效地加载网络图片。
总结,通过URL获取网络图片并在Android应用中显示,主要涉及以下几个知识点: 1. 添加第三方库Glide及其依赖。 2. 配置AndroidManifest.xml以允许网络访问。 3. 使用Glide的API加载图片到ImageView。 4. 可选地,...
在Android开发中,获取网络图片是一项常见的任务,尤其在构建用户界面时,如显示新闻、商品详情或个人头像等。本案例主要讲解如何在Android应用中通过HTTP GET请求下载并显示网络上的图片。我们将围绕以下几个核心...
总之,Android中获取网络图片并显示涉及网络请求、数据解析、图片缓存和UI渲染等多个步骤。使用合适的工具和库,如`OkHttp`和`Glide`,可以简化这些操作,同时提升应用性能和用户体验。在实际开发中,还应遵循最佳...
本篇将详细讲解如何在Android应用中实现从网络URL获取并显示图片的功能。 首先,我们需要一个网络库来处理HTTP请求。常见的有Volley、OkHttp和Retrofit等。这里以OkHttp为例,它是一个高效的网络库,支持异步请求和...
如何从网络中获取一张图片,并显示出来?? 首先应想到若要从网络资源中获取图片,就需要通过流操作,于是就想到如何创建流。 第一步:指定图片资源的URL 第二步:通过RUL获取一个connection 第三步:通过连接获取...
5. **ImageView的使用**:在Android中,ImageView是展示图片的主要组件。可以通过设置其scaleType属性来控制图片的显示方式,如CENTER_CROP、FIT_CENTER、MATRIX等。在处理触摸缩放时,可能需要通过Matrix来动态改变...
android HttpClient 获取网络图片 实例
综上所述,Android获取网络图片涉及网络编程、图像处理和UI交互等多个方面,需要理解网络请求、字节流处理以及UI线程规则等核心知识点。同时,为了优化性能和用户体验,还需要关注内存管理和缓存策略。
Android获取网络图片的方法附演示源码,主要写的是Android从网上获取图片的几种写法。1.首先是布局文件,新建一个pic.xml文件,然后是AndroidMainFest.xml文件,然后就是MainActivity文件了,具体实现的每步代码,...
综上所述,Android获取网络图片和HTML代码涉及到网络请求、数据解析、文件操作以及UI显示等多个方面。理解并掌握这些技术,对于开发功能丰富的Android应用至关重要。在实际开发中,还应考虑网络异常处理、内存优化、...
首先,Android提供了多种方式来实现网络图片的获取,包括但不限于以下几种方法: 1. **使用HttpURLConnection或HttpClient**:这是最基础的方法,通过发送HTTP请求获取图片的URL。这种方式需要手动处理数据流,解析...
利用android开源库android-gif-drawable和android-async-http不仅能显示本地的gif图片,还能从网络上获取Gif图片并显示.即使是较大的gif图片,也不会报OOM异常。
1. **网络图片加载**:Android中,我们可以使用多种库来从网络获取图片,如 Glide, Picasso, Fresco 等。这些库提供了便捷的方法来加载网络图片,并且支持缓存策略,减少网络请求次数,提高用户体验。 2. **图片原...
以上就是Android中获取网络图片并显示到ImageView的基本知识点,通过学习和实践,你可以根据项目需求选择合适的方法来实现这一功能。在提供的"URLTest"文件中,可能包含了一个简单的示例,帮助你理解如何实现这个...
在Android开发中,异步获取网络图片是一项基本...总结,Android中异步获取网络图片通常使用上述的库或框架,它们都能有效提高性能,减少资源消耗。在实际开发中,应根据项目需求选择合适的方法,以达到最佳的用户体验。