http://tech.it168.com/a2009/0907/675/000000675155_3.shtml
http://blog.sina.com.cn/s/blog_62c194760100ggnu.html~type=v5_one&label=rela_nextarticle
package com.android.AsynctaskTest;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
public class AsynctaskTest extends Activity {
String imageUrl = "http://hiphotos.baidu.com/baidu/pic/item/7d8aebfebf3f9e125c6008d8.jpg";
String param="";
ProgressBar mypb;
ImageView mimg;
Button btn;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mypb =(ProgressBar)findViewById(R.id.pgb);
mimg =(ImageView)findViewById(R.id.wallpaper);
btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new myAsynctask().execute(param);
}
});
}
Bitmap getImageFromNetwork() {
URL myFileUrl = null;
Bitmap bitmap = null;
try {
myFileUrl = new URL(imageUrl);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(bitmap==null);
System.out.println(myFileUrl.toString());
return bitmap;
}
class myAsynctask extends AsyncTask<String ,Integer ,Bitmap >{
@Override
protected Bitmap doInBackground(String... params) {
// TODO Auto-generated method stub
Bitmap bitmap=getImageFromNetwork();
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
// TODO Auto-generated method stub
if(result!=null){
mimg.setImageBitmap(result);
}
else
mimg.setBackgroundResource(R.drawable.icon);
super.onPostExecute(result);
mypb.setVisibility(View.GONE);
}
@Override
protected void onProgressUpdate(Integer... values) {
// TODO Auto-generated method stub
mypb.setProgress(values[0]);
super.onProgressUpdate(values);
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
mypb.setVisibility(View.VISIBLE);
mypb.setProgress(0);
super.onPreExecute();
}
}
}
http://aijiawang-126-com.iteye.com/blog/592643
分享到:
相关推荐
为了支持图片的左右切换,可以创建一个图片队列,每次点击切换时启动一个新的`AsyncTask`实例去下载下一张图片。注意在切换过程中,确保取消当前正在执行的任务,避免不必要的资源浪费和可能的并发问题。 在实际...
这个名为"switchPicDemo.zip"的压缩包文件提供了一个实现自动滚屏的图片轮播器示例,支持从网络加载图片以及将图片下载到SD卡上再进行显示。 首先,我们来详细探讨图片轮播广告轮播自动滚屏的关键知识点: 1. **...
这个标题"安卓Gallery实现异步加载网络图片源代码"暗示我们将会探讨如何在Android的Gallery视图中实现从网络异步加载图片,提高用户体验,避免阻塞主线程。描述进一步指出,该实现会优化性能,仅在用户停止滚动时...
本项目是一个基于Kotlin实现的自动播放图片浏览器,它提供了用户点击切换图片(下一张、上一张)以及暂停/继续播放的功能。下面将详细探讨这个项目中涉及的核心知识点。 1. **Kotlin基础**: - **变量声明**:...
在Android应用开发中,实现图片左右滑动以及点击放大的功能是常见的需求,尤其是在设计相册、图片浏览器或者产品展示类应用时。这个压缩包文件"android之实现图片左右滑动 点击放大功能.zip"可能包含了一个示例项目...
然而,直接从网络加载图片会消耗大量资源并可能导致应用性能下降,用户体验不佳。为了解决这个问题,开发者通常采用异步加载策略,将图片加载工作放在后台线程中进行,同时只加载用户当前查看到的页面,这种技术被...
Android提供了AsyncTask、Handler、Loader等机制来执行耗时操作,这里通常会使用`AsyncTask`来加载网络图片,它可以在后台线程中执行任务,然后在UI线程更新结果,避免阻塞用户界面。 3. **图片缓存**:为了提高...
在Android开发中,从网络获取图片是一项常见的任务,特别是在构建涉及用户界面的应用中。这个程序示例展示了如何在Android平台上实现这一功能。我们将探讨以下几个关键知识点: 1. **URL和HttpURLConnection**: ...
4. **图片库库使用**:Android有许多开源的图片加载库,如Glide、Picasso、Universal Image Loader等,它们已经实现了异步加载和缓存功能。这些库可以简化代码,提高性能,但在这个项目中,可能需要自定义实现以满足...
在这个Demo中,可能会使用其中的一种,它们都能有效地处理图片的缩放、裁剪以及缓存,避免了每次都从网络加载图片,提高用户体验。 点击图片查看大图的实现,通常会弹出一个全屏的`Dialog`或者一个新的`Activity`,...
在移动应用开发中,我们经常需要实现类似微信的图片浏览功能,这通常涉及到图片的展示、缩放、拖动以及网络加载与本地缓存。"类似微信的图片展示viewpage"是一个这样的组件,它提供了丰富的交互体验,让用户可以像在...
8. **UI设计与网络图片加载**:设计用户界面,实现网络图片的加载。 #### 二、技术细节与实现方案 ##### 1. 跨设备适配 - **实现原理**:通过检测屏幕尺寸(宽度和高度)来决定使用哪种布局。例如,当屏幕宽度较...
在本案例中,我们将讨论如何利用`ViewPager`来实现一个从网络加载图片并自动轮播的功能,类似于淘宝首页的图片展示。 首先,`ViewPager`的核心在于它可以与适配器(如`PagerAdapter`或`FragmentPagerAdapter`)配合...
在图片加载场景中,如果用户已经访问过某张图片,再次访问时就可以从缓存中直接读取,而不是重新下载,这样大大减少了网络带宽消耗和加载时间。常见的缓存策略有强缓存(基于HTTP的Expires或Cache-Control头)和协商...
`ACTION_PICK`可以让用户从图库中选择一张或多张图片,而自定义选择器则可以提供更定制化的用户体验,比如设置选择数量限制、图片质量筛选等。 2. **多选图片**: 要支持多选图片,通常会用到`Intent.EXTRA_ALLOW_...
例如,Glide库就提供了强大的图片加载功能,包括自动缓存、多线程下载、占位符显示、加载失败图等特性,只需简单的几行代码就能实现高效的图片加载。 ```java Glide.with(context) .load(imageUrl) .placeholder...
在Android开发中,下载网络图片并将其显示到本地是一个常见的需求。这个过程涉及到网络请求、数据解析、异步处理以及用户界面的更新。以下是对标题和描述中涉及的知识点的详细说明: 1. **网络请求**: - Android...
总的来说,这个项目涵盖了Android UI设计、网络请求、图片加载优化和Web视图的综合运用,是学习Android开发中实用功能实现的一个良好实践。通过深入理解并实现这些技术,开发者可以提升自己在Android应用开发中的...
可以使用诸如RecyclerView结合GridLayoutManager来实现网格布局,同时结合Glide的预加载功能,确保用户在滚动时能快速看到下一张图片。 8. **错误处理和加载占位图** 在图片加载失败时,提供错误处理回调和加载...
在实现图片墙时,我们通常会将每个单元格设为一张图片,通过设置GridView的列数和间距,创建出美观的图片展示效果。要实现GridView的高度自适应,我们需要在Adapter中动态计算每个单元格的高度,这通常涉及到图片的...