AsyncTask下载网络图片的简单应用

1、imageTest

  1. package lpc.com.asynctaskdemo;
  2. import android.app.Activity;
  3. import android.graphics.Bitmap;
  4. import android.graphics.BitmapFactory;
  5. import android.os.AsyncTask;
  6. import android.os.Bundle;
  7. import android.view.View;
  8. import android.widget.ImageView;
  9. import android.widget.ProgressBar;
  10. import java.io.BufferedInputStream;
  11. import java.io.IOException;
  12. import java.io.InputStream;
  13. import java.net.URL;
  14. import java.net.URLConnection;
  15. /**
  16. * Created by Administrator on 2015/12/8.
  17. */
  18. public class ImageTest extends Activity {
  19. private ImageView mImageView;
  20. private ProgressBar mProgressBar;
  21. private String URL = "http://cdnq.duitang.com/uploads/item/201409/14/20140914172442_sjXYv.jpeg";
  22. @Override
  23. protected void onCreate(Bundle savedInstanceState) {
  24. super.onCreate(savedInstanceState);
  25. setContentView(R.layout.image);
  26. mImageView = (ImageView) findViewById(R.id.image);
  27. mProgressBar = (ProgressBar) findViewById(R.id.progress);
  28. new MyAsycTask().execute(URL);
  29. }
  30. class MyAsycTask extends AsyncTask<String,Void,Bitmap>{
  31. @Override
  32. protected void onPreExecute() {
  33. super.onPreExecute();
  34. mProgressBar.setVisibility(View.VISIBLE);
  35. }
  36. @Override
  37. protected void onPostExecute(Bitmap bitmap) {
  38. super.onPostExecute(bitmap);
  39. mProgressBar.setVisibility(View.GONE);
  40. mImageView.setImageBitmap(bitmap);
  41. }
  42. @Override
  43. protected Bitmap doInBackground(String... params) {
  44. String url = params[0];
  45. Bitmap bitmap = null;
  46. URLConnection connection;
  47. InputStream is;
  48. try {
  49. connection = new URL(url).openConnection();
  50. is = connection.getInputStream();
  51. BufferedInputStream bis = new BufferedInputStream(is);
  52. bitmap = BitmapFactory.decodeStream(bis);
  53. is.close();
  54. bis.close();
  55. } catch (IOException e) {
  56. e.printStackTrace();
  57. }
  58. return bitmap;
  59. }
  60. }
  61. }

2、布局文件 image.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical" android:layout_width="match_parent"
  4. android:layout_height="match_parent">
  5. <ImageView
  6. android:id="@+id/image"
  7. android:layout_width="match_parent"
  8. android:layout_height="match_parent" />
  9. <ProgressBar
  10. android:id="@+id/progress"
  11. android:visibility="gone"
  12. android:layout_centerInParent="true"
  13. android:layout_width="wrap_content"
  14. android:layout_height="wrap_content" />
  15. </RelativeLayout>

3、Manifest文件

  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  2. package="lpc.com.asynctaskdemo">
  3. <uses-permission android:name="android.permission.INTERNET"/>
  4. <application
  5. android:allowBackup="true"
  6. android:icon="@mipmap/ic_launcher"
  7. android:label="@string/app_name"
  8. android:supportsRtl="true"
  9. android:theme="@style/AppTheme">
  10. <activity android:name=".ImageTest">
  11. <intent-filter>
  12. <action android:name="android.intent.action.MAIN"/>
  13. <category android:name="android.intent.category.LAUNCHER"/>
  14. </intent-filter>
  15. </activity>
  16. </application>
  17. </manifest>

来自为知笔记(Wiz)

附件列表

时间: 2024-12-11 23:34:23

AsyncTask下载网络图片的简单应用的相关文章

iOS 用GCD下载网络图片方法

用多线程下载网络图片会导致重复下载浪费流量的问题. 以免出现以上情况,用多线程下载图片方法可以用以下方法. 1.创建一个字典,如果下载了该图片则将用图片地址为key,图片为value保存. 2.创建一个字典,如果子线程已开始下载则用图片地址为key,图片地址为value保存. 3.如果正在下载中,显示占位图片 4.如果字典中有下载的图片,则刷新图片 //属性 @interface ViewController () @property (weak, nonatomic) IBOutlet UII

Android实战简易教程-第七十一枪(异步网络下载网络图片及图片廊制作)

首先来实现异步下载网络图片,布局文件如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_pare

android下载网络图片并缓存

异步下载网络图片,并提供是否缓存至内存或外部文件的功能 异步加载类AsyncImageLoader public void downloadImage(final String url, final ImageCallback callback); public void downloadImage(final String url, final boolean cache2Memory, final ImageCallback callback); public void setCache2F

ffmpeg下载安装和简单应用(C#音频格式转换)

ffmpeg下载安装和简单应用 先介绍一下ffmpeg:FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影.转换.流功能,包含了libavcodec -这是一个用于多个项目中音频和视频的解码器库,以及libavformat--一个音频与视频格式转换库.名字由来:"FFmpeg"这个单词中的"FF"指的是"Fast Forward"[2].有些新手写信给"FFmpeg"的项目负责人,询问FF是不是代表"Fas

django的下载安装与简单应用

Django下载安装与简单实例 Django官网下载页面 1.下载Django: pycharm中下载 pycham中装模块的地方安装 或界面下Terminal安装File | Settings | Project: tushu | Project Interpreter pip3下载 pip3 install django==1.11.9 -i http://xxxxxx 指定源 2.创建一个django project 创建项目 django-admin startproject mysit

AsyncTask下载图片

最近在看很早以前写过的代码,把一些东西回顾一下.本文先回顾一下AsyncTask的基本使用.   AsyncTask说简单点就是 开启一个线程,并且把结果提交给ui线程. Thread+Handler,不过里面做了一些封装 减轻了我们维护线程的麻烦. 先来写一个简单的例子,异步下载一个图片,显示到ImageView中. public class MainActivity extends Activity { @Override protected void onCreate(Bundle sav

Android 下载网络图片保存到本地

通过网络地址获取网络图片,点击下载将图片显示出来,然后点击图片将图片保存到本地. 首先需要在manifest上添加一些权限: [java] view plain copy <!-- 访问网络的权限 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 文件读取的权限 --> <uses-permission android:name="andro

Android异步下载网络图片

最近新做的一个项目,里面需要下载网络上的图片,并显示在UI界面上,学Android有个常识,就是Android中在主线程中没法直接更新UI的,要想更新UI必须另外开启一个线程来实现,当开启的线程完成图片下载的任务后,来去通知主线程去更新UI,当然这就涉及到Handler这个机制,嗯,背景大致就是这样.来简单的理一下思路: 1.主线程中启动一个异步线程AsyncTask来下载图片,一般耗时操作或与网络交互的都要在异步线程中执行. 2.图片下载完成后,来去通知主线程去更新UI. 3.主线程收到消息后

下载网络图片到图库

代码介绍:首先开启一个线程请求网络图片,图片下载成功之后保存到相册中.代码简单易懂. @implementation ViewController { NSData *data; } - (void)viewDidLoad { [super viewDidLoad]; UIImageView *imageview=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 300, 200)]; [imageview setBackgroundColor