`

Android 图片下载并显示

 
阅读更多
package com.test.activity;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Window;
import android.widget.ImageView;

import com.test.R;

public class BitmapActivity extends Activity {

	private ImageView imageView ;
	private final static String IMAGEURL = "https://gss1.bdstatic.com/5eN1dDebRNRTm2_p8IuM_a/res/img/logo/logo201509091.png";
	private Handler handler = new Handler(){
		@Override
		public void handleMessage(Message msg) {
			File file = (File)msg.obj;
			Bitmap bitmap = null;
			try {
				bitmap = BitmapFactory.decodeStream(new FileInputStream(file));
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			}
			imageView.setImageBitmap(bitmap);
		}
	};
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.bitmap);
		imageView = (ImageView)findViewById(R.id.imageView);
		new Thread(){
			@Override
			public void run() {
				Message message = handler.obtainMessage();
				message.obj = downloadFile(IMAGEURL);
				message.sendToTarget();
			}
		}.start();
	}
	//下载图片
	private File downloadFile(String urlStr){
		URL url = null ;
		InputStream input = null ;
		OutputStream output = null ;
		File file = null ;
		try {
			url = new URL(urlStr);
			URLConnection  urlConnection = url.openConnection();
			urlConnection.setConnectTimeout(5*1000);  
			input = urlConnection.getInputStream();
			file = File.createTempFile("xxxx", "jpg");
			output = new FileOutputStream(file) ; 
			byte[] byt = new byte[1024];
			int length = 0;
			// 开始读取
	        while ((length = input.read(byt)) != -1) {  
	        	output.write(byt, 0, length);  
	        }  
	        input.close();
			output.close();
			System.out.println("下载完成");
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("下载出错");
		}
		return file ;
	}
}

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Android Studio —— 下载网络图片显示

    3. **下载并显示图片**: 在需要显示图片的`ImageView`中,调用`ImageLoader`的`get`方法: ```java ImageView imageView = findViewById(R.id.imageView); String imageUrl = "http://example.com/image.jpg"; ...

    Android图片下载显示

    总结起来,实现Android图片下载显示,尤其是相册效果,需要综合运用网络请求库、图片加载库、内存管理、缓存策略以及UI组件。选择合适的工具和方法,能提升用户体验,同时保证应用的性能和稳定性。在实际开发中,要...

    android下选择图片文件夹并显示

    android下选择图片文件夹并显示对应文件夹下的图片文件,有需要的可以参考一下。 android下选择图片文件夹并显示对应文件夹下的图片文件,有需要的可以参考一下。 android下选择图片文件夹并显示对应文件夹下的图片...

    android网络下载图片,并且显示在图库

    在Android应用开发中,将网络上的图片下载并显示在ImageView组件中是一项常见的需求。这个"android网络下载图片,并且显示在图库"的项目演示了如何实现这一功能,同时让下载的图片出现在设备的图库中。以下是相关...

    android 从图库获取图片显示

    在Android应用开发中,从图库获取图片并显示在界面上是常见的功能需求,尤其在社交媒体、个人资料编辑等场景中。以下将详细介绍如何实现这一功能。 首先,我们需要添加必要的权限到AndroidManifest.xml文件中,以...

    android 图片异步下载

    在Android应用开发中,图片...总的来说,Android图片异步下载是一个涉及多方面技术的问题,包括线程管理、网络通信、内存优化以及第三方库的使用。开发者需要根据项目需求选择合适的方法,并注重性能和用户体验的优化。

    android安卓通过url获取网络图片并显示在imageview中

    这里我们以Glide为例,因为它是目前最流行的Android图片加载库之一。 1. **添加依赖** 在项目的build.gradle(Module)文件中添加Glide库的依赖: ```groovy dependencies { implementation '...

    Android批量下载图片并缓存,非常流畅

    在Android开发中,图片...综上所述,通过合理利用LruCache进行内存缓存,并结合磁盘缓存,可以有效地提高Android应用在批量下载和显示图片时的流畅性。在实际项目中,结合第三方库可以进一步简化开发过程,提升效率。

    android实现根据输入的URL下载网络图片并显示在界面上

    在Android开发中,将网络图片下载到本地并显示在应用界面上是一项常见的需求。这个"android实现根据输入的URL下载网络图片并显示在新的activity上"的项目,旨在教你如何利用Android Studio完成这一功能。以下将详细...

    Android 从网上下载图片并显示到ListView上

    在Android开发中,将网络上的图片下载并显示到ListView中是一项常见的需求,这涉及到网络请求、数据处理、UI渲染等多个技术点。以下是一份详细的步骤和技术解析: 首先,我们需要使用HTTP客户端库来发送网络请求...

    Android全屏图片显示

    在Android开发中,全屏显示图片是一个常见的需求,比如在壁纸应用、相册应用或者一些游戏的启动界面中。要实现这样一个功能,开发者需要考虑图片的加载、布局填充、缩放处理以及性能优化等多个方面。下面我们将详细...

    httpClient及android 原生接口实现下载并显示图片 源码

    《 httpClient及android 原生接口实现下载并显示图片》博客对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/17609771

    Android获取手机所有图片并显示

    在Android开发中,获取手机上的...以上是实现"Android获取手机所有图片并显示"的基本步骤和关键技术点。在实际开发中,还需要考虑到用户体验、性能优化以及兼容性问题,确保应用能在不同版本的Android系统上流畅运行。

    Android-DownLoadProgressButton下载显示进度按钮控件

    `Android-DownLoadProgressButton`是一个专为Android设计的下载显示进度的按钮控件,它将下载进度集成到按钮中,提供了一种直观且美观的方式来展示文件下载状态。 这个控件的主要功能是为用户提供一个可点击的按钮...

    Android 下载图片保存到相册

    在Android平台上,下载图片并保存到用户设备的相册是一项常见的功能。这通常涉及到网络请求、文件操作以及与系统媒体库的交互。以下是对`Android 下载图片保存到相册`这一主题的详细讲解。 首先,我们需要理解...

    Android例子源码异步批量下载图片并缓存

    当用户首次加载图片时,会从网络下载并存储到本地,下次再次加载同一图片时,直接从本地缓存读取,减少网络请求,加快显示速度。Android中的图片缓存通常分为内存缓存和磁盘缓存两部分。内存缓存利用了Android系统的...

    android 按时间显示图片

    在Android开发中,按时间顺序显示图片是一项常见的需求,尤其在相册应用或者日志记录类应用中。这个任务涉及到图像处理、数据存储以及UI布局等多个方面。下面将详细讲解如何实现这一功能。 首先,我们需要获取到...

    android从服务器端下载图片并保存在本地sdcard里并在界面滚动显示出来

    不存在则检查磁盘,存在则读取,不存在则从服务器下载并存入缓存。 4. **异步处理**: 图片下载不应阻塞主线程,否则会导致UI卡顿。可以使用AsyncTask、Handler-Thread、RxJava或Android的 Volley、Glide、Picasso...

    Android Studio开发显示网络图片

    在Android应用开发中,显示网络图片是一个常见的需求,特别是在构建社交、新闻或者电商类应用时。Android Studio作为官方推荐的Android开发集成环境,提供了丰富的工具和技术支持来实现这一功能。以下将详细介绍如何...

    Android通过网络URL获取图片并显示

    本篇将详细讲解如何在Android应用中实现从网络URL获取并显示图片的功能。 首先,我们需要一个网络库来处理HTTP请求。常见的有Volley、OkHttp和Retrofit等。这里以OkHttp为例,它是一个高效的网络库,支持异步请求和...

Global site tag (gtag.js) - Google Analytics