1. 程式人生 > >Android 下載網路圖片儲存到本地

Android 下載網路圖片儲存到本地

<!-- 訪問網路的許可權 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 檔案讀取的許可權 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 向SD卡中建立或者刪除的許可權。 -->
<uses-permission android:name="andorid.permission.MONUN_UNMOUNT_FILESYSTEMS"/>
package com.xjw.test;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener{

	Button content;
	ImageView image;
	Bitmap bitmap;
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		content=(Button)findViewById(R.id.content);
		image=(ImageView)findViewById(R.id.image);
		
		content.setOnClickListener(this);;
		image.setOnClickListener(this);;
	}
	
	/**
	 * 獲取網路圖片
	 * @param imageurl 圖片網路地址
	 * @return Bitmap 返回點陣圖
	 */
	public Bitmap GetImageInputStream(String imageurl){
		URL url;
		HttpURLConnection connection=null;
		Bitmap bitmap=null;
		try {
			url = new URL(imageurl);
			connection=(HttpURLConnection)url.openConnection();
			connection.setConnectTimeout(6000); //超時設定
			connection.setDoInput(true); 
			connection.setUseCaches(false); //設定不使用快取
			InputStream inputStream=connection.getInputStream();
			bitmap=BitmapFactory.decodeStream(inputStream);
			inputStream.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return bitmap;
	}
	
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.content:
			//加入網路圖片地址
			new Task().execute("http://pic.4j4j.cn/upload/pic/20130617/55695c3c95.jpg");
			break;
			
		case R.id.image:
			//點選圖片後將圖片儲存到SD卡跟目錄下的Test資料夾內
			SavaImage(bitmap, Environment.getExternalStorageDirectory().getPath()+"/Test");
			Toast.makeText(getBaseContext(), "圖片儲存", Toast.LENGTH_SHORT).show();
			break;
			
		default:
			break;
		}
	}
	
	Handler handler=new Handler(){
		public void handleMessage(android.os.Message msg) {
			if(msg.what==0x123){
				image.setImageBitmap(bitmap);
			}
		};
	};
	
	
	/**
	 * 非同步執行緒下載圖片
	 *
	 */
	class Task extends AsyncTask<String, Integer, Void>{

		protected Void doInBackground(String... params) {
			bitmap=GetImageInputStream((String)params[0]);
			return null;
		}
		
		protected void onPostExecute(Void result) {
			super.onPostExecute(result);
			Message message=new Message();
			message.what=0x123;
			handler.sendMessage(message);
		}
		
	}
	
	/**
	 * 儲存點陣圖到本地
	 * @param bitmap
	 * @param path 本地路徑
	 * @return void
	 */
	public void SavaImage(Bitmap bitmap, String path){
		File file=new File(path);
		FileOutputStream fileOutputStream=null;
		//資料夾不存在,則建立它
		if(!file.exists()){
			file.mkdir();
		}
		try {
			fileOutputStream=new FileOutputStream(path+"/"+System.currentTimeMillis()+".png");
			bitmap.compress(Bitmap.CompressFormat.JPEG, 100,fileOutputStream);
			fileOutputStream.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


相關推薦

Android 下載網路圖片儲存本地

<!-- 訪問網路的許可權 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 檔案讀取的許可權 --> <uses-permission android:name="andr

Android下載網路圖片儲存本地相簿中

package com.thfund.bigtree.StarCounselor.activity; import android.content.Context; import android.content.Intent; import android.grap

Android下載網路圖片儲存到相簿

下載類,可以url下載到相簿,記得在清單加許可權,6.0程式碼動態加許可權判斷,下載圖片要在子執行緒中下載,下載完後廣播更新相簿 在清單檔案裡面新增許可權: <!--網路--> <uses-permission android:name="android

JAVA獲取網路圖片儲存本地

package cn.test.net;   import java.io.File;   import java.io.FileOutputStream;   import java.io.InputStream;   import ja

Android下載網路圖片資源

從網路下載圖片資源在各種APP中很常見,比如很多APP都有廣告輪番功能,這些廣告圖片通常是從伺服器獲取的,這裡就需要從伺服器上下載圖片資源並顯示。 一、獲取網路圖片並下載到本地: 程式碼:MainActivity.java: package com.example.and

java中使用okHttpClient下載網路圖片本地

OkHttpClient官網: http://square.github.io/okhttp/OkHttp GitHub地址:https://github.com/square/okhttp首先匯入maven依賴:<dependency> <grou

Android使用webView長按儲存下載網路圖片

最近發現在webView的setOnLongClickListener中可以獲取到WebView.HitTestResult,根據獲取的HitTestResult的Type來判斷做不同的處理。通過判斷Type的型別獲取點選圖片的url,然後把圖片下載到本地,傳送廣播通知系統

PHP實現下載遠端圖片儲存本地的方法

                         

python 使用 urllib.urlretrieve()下載網路圖片,在本地開啟提示檔案損壞無法開啟

程式碼如下: url = ‘http://www.xiaohuar.com/d/file/20170318/a5e3460073df58ed208ae3ec2ff46d07.jpg’ path_name ='xx' urllib.urlretrieve(url, 'D:\i

iOS網路圖片儲存本地

說明 //共享資料 —-> 特殊的PC (本地伺服器,遠端伺服器) //C/S //IP 10.20.157.135 —> 域名 //14.215.177.38 –> //區分資源 —> URL //ss3.bdstat

node.js抓取網路圖片儲存本地,node.js抓取防盜鏈網路圖片儲存本地

node.js抓取網路圖片儲存到本地,node.js抓取防盜鏈網路圖片儲存到本地 使用模組request、fs,request模組在npm裡平均月下載量超過3000W次,那是相當的牛逼。 node版本

網路圖片儲存本地

using System; using System.Net; using System.IO; using System.Text; namespace mynamespace { public class Downloader { //

android 之使用多執行緒中的AsyncTask實現下載網路圖片資源

前臺顯示:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:

Python下載網頁圖片儲存本地

#encoding:utf-8 import urllib from lxml import etree import requests def Schedule(blocknum,blocksize,totalsize): ''' :param blocknum:

在fragment中實現Android上傳圖片本地JavaWeb服務器

prop prefix adt ilo err 1.10 response try 轉換成 服務器端: 需要一個接受文件的servlet,以及導入兩個包:commons-fileupload-1.3.1.jar 和 commons-io-2.4.jar import ja

C++ QT 載入網路圖片本地圖片

原始碼下載:C++_QT 載入圖片 QTShowImage.cpp #include "QtShowImage.h" #include <QMovie> #include <QNetworkAccessManager> #include <QUrl> #i

Banner輪播圖 網路圖片本地圖片

banner使用步驟 1—新增依賴 compile ‘com.youth.banner:banner:1.4.9’ //最新版本 2— 新增許可權 * * 3—添加布局 <com.youth.banner.Banner xmlns:app=“http://sch

unity點選按鈕擷取圖片儲存本地

菜鳥教程,歡迎大家指教 啥也不說直接上程式碼 // 定義一個協程 IEnumerator UploadPNG() { // 因為"WaitForEndOfFrame"在OnGUI之後執行 // 所以我們只在渲染完成之後才讀取螢幕上的畫面 yield return new WaitForEnd

android 下載網路pdf檔案後並顯示

1.基本思路: 開啟網路pdf 思路整體還是來源與圖片的載入。 android中載入網路圖片的框架有很多個。如image-laoder, fresco、glide等,首先都是從記憶體中找圖片,如果記憶體中沒有,接著從本地找,本地沒有在從網路下載。 android中載

Python 下載網路圖片到指定地址

在這裡插入程式碼片 #coding=utf-8 from urllib import request import urllib import re import chardet def mkdir(path): # 引入模組 import o