當前位置:首頁 » 安卓系統 » androidhttp下載圖片

androidhttp下載圖片

發布時間: 2023-08-28 13:39:14

⑴ android有哪些快速開發應用的開源框架

ThinkAndroid是一個免費的開源的、簡易的、遵循Apache2開源協議發布的Android開發框架,其開發宗旨是簡單、快速的進行Android應用程序的開發,包含Android mvc、簡易sqlite orm、ioc模塊、封裝Android httpclitent的http模塊,具有快速構建文件緩存功能,無需考慮緩存文件的格式,都可以非常輕松的實現緩存,它還基於文件緩存模塊實現了圖片緩存功能,在android中載入的圖片的時候,對oom的問題,和對載入圖片錯位的問題都輕易解決。他還包括了一個手機開發中經常應用的實用工具類,如日誌管理,配置文件管理,android下載器模塊,網路切換檢測等等工具。

目前ThinkAndroid主要有以下模塊:

MVC模塊:實現視圖與模型的分離。
ioc模塊:android中的ioc模塊,完全註解方式就可以進行UI綁定、res中的資源的讀取、以及對象的初始化。
資料庫模塊:android中的orm框架,使用了線程池對sqlite進行操作。
http模塊:通過httpclient進行封裝http數據請求,支持非同步及同步方式載入。
緩存模塊:通過簡單的配置及設計可以很好的實現緩存,對緩存可以隨意的配置
圖片緩存模塊:imageview載入圖片的時候無需考慮圖片載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象。
配置器模塊:可以對簡易的實現配對配置的操作,目前配置文件可以支持Preference、Properties對配置進行存取。
日誌列印模塊:可以較快的輕易的是實現日誌列印,支持日誌列印的擴展,目前支持對sdcard寫入本地列印、以及控制台列印
下載器模塊:可以簡單的實現多線程下載、後台下載、斷點續傳、對下載進行控制、如開始、暫停、刪除等等。
網路狀態檢測模塊:當網路狀態改變時,對網路狀態進行檢測。

⑵ android客戶端怎樣用七牛上傳照片

相信很多開發者會把圖片存放到七牛上,我的web站點也是吧圖片存儲到七牛上,對於以圖片為主的站點,這樣可以節省很大帶寬。
將圖片上傳到七牛伺服器的重點就是獲得上傳憑證uploadToken,直接把AccessKey和Secret放到客戶端太不安全,容易被反編譯。所以需要在伺服器端根據AccessKey和Secret動態生成一個uploadToken,然後傳回到客戶端,客戶端通過這個uploadToken將圖片上傳到七牛伺服器。
第一、在伺服器端生成uploadToken

//將圖片上傳到七牛 start
$bucket='七牛空間名稱';
$expires = 3600;
$accessKey='去七牛查看';
$secretKey='去七牛查看';
$client = new QiniuClient($accessKey,$secretKey);
$flags = array();
$scope = $bucket;
$deadline = time() + $expires;
$flags['scope'] = $scope;
$flags['deadline'] = $deadline;
$flags['returnBody'] = null;
echo $client->uploadToken($flags);

這里注意一下bucket:七牛空間名稱和deadline:uploadToken失效時間,具體可查看一下官網上傳憑證介紹
uploadToken($flags)是自己封裝的用於生成上傳憑證的函數

public function uploadToken($flags) { if(!isset($flags['deadline'])) $flags['deadline'] = 3600 + time(); $encodedFlags = self::urlsafe_base64_encode(json_encode($flags)); $sign = hash_hmac('sha1', $encodedFlags, $this->secretKey, true); $encodedSign = self::urlsafe_base64_encode($sign); $token = $this->accessKey.':'.$encodedSign. ':' . $encodedFlags; return $token; }
public static function urlsafe_base64_encode($str){
$find = array("+","/");
$replace = array("-", "_");
return str_replace($find, $replace, base64_encode($str));
}

第二、下載qiniu-android-sdk-7.0.0.jar和android-async-http-1.4.6並導入項目
第三、android上傳圖片
由於Android4.0 以後不允許在主線程進行網路連接,所以需要新開個線程來獲取上傳憑證。

/*
* 上傳圖片到七牛
*/
private void uploadImg(){
new Thread(new Runnable(){
@Override
public void run() {
//獲得七牛上傳憑證uploadToken
String token=getUploadToken();
//手機SD卡圖片存放路徑
String imgPath="";
try {
imgPath=FileUtil.getBasePath()+ "/test.jpg";
} catch (IOException e) {
e.printStackTrace();
}
if(token!=null){
String data = imgPath;
//圖片名稱為當前日期+隨機數生成
String key = getRandomFileName();
UploadManager uploadManager = new UploadManager();
uploadManager.put(data, key, token,
new UpCompletionHandler() {
@Override
public void complete(String arg0, ResponseInfo info, JSONObject response) {
// TODO Auto-generated method stub
Log.i("qiniu", info.toString());
}
}, null);
}
else{
Log.i("fail", "上傳失敗");
}
}
}).start();
}

FileUtil.getBasePath()使用來獲取SD卡基本路徑,getRandomFileName()生成一個隨機數來命名上傳圖片,具體方法我在這就不寫了。

獲得上傳憑證的方法也很簡單,直接使用httpget和伺服器通信,獲得第一步中生成的數據即可。(注意10.0.2.2是模擬器提供的特殊IP,等同於在電腦端的環回測試IP127.0.0.1)

/*
* 獲得七牛上傳憑證uploadtoken
*/

private String getUploadToken()
{
HttpClient client = new DefaultHttpClient();
StringBuilder builder = new StringBuilder();

HttpGet myget = new HttpGet("http://10.0.0.2/test/getUploadToken.php");
try {
HttpResponse response = client.execute(myget);
BufferedReader reader = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
for (String s = reader.readLine(); s != null; s = reader.readLine()) {
builder.append(s);
}
return builder.toString();
} catch (Exception e) {
Log.i("url response", "false");
e.printStackTrace();
return null;
}
}

通過LOG日誌可以看到Qiniu--success,說明上傳成功。

⑶ android通過http post實現文件下載

可參照我的如下代碼

java">java.io.OutputStreamos=null;
java.io.InputStreamis=null;
try{
java.io.Filefile=newjava.io.File(str_local_file_path);
if(file.exists()&&file.length()>0){
}else{
file.createNewFile();

java.net.URLurl=newjava.net.URL(str_url);
java.net.HttpURLConnectionconn=(java.net.HttpURLConnection)url.openConnection();
os=newjava.io.FileOutputStream(file);
is=conn.getInputStream();
byte[]buffer=newbyte[1024*4];
intn_rx=0;
while((n_rx=is.read(buffer))>0){
os.write(buffer,0,n_rx);
}
}
returntrue;
}catch(MalformedURLExceptione){
}catch(IOExceptione){
}finally{
os.flush();
os.close();
is.close();
}
returnfalse;

⑷ android原生開發,從http下載圖片,下載失敗或成功提示,並放圖片顯示出來。

下載類
public class DownFile
{
public InputStream getInput(String path)
{
InputStream in = null;
try {
URL url = new URL(path);
HttpURLConnection hcon = (HttpURLConnection) url.openConnection();
in = hcon.getInputStream();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return in;
}
public int downIamge(String path,String name)
{
InputStream in = getInput(path);
int type = 0;
File ex = Environment.getExternalStorageDirectory();
try {
FileOutputStream out = new FileOutputStream(new File(ex.getAbsoluteFile()+File.separator+name));
int len = 0;
byte[] bb = new byte[1024];
while((len = in.read(bb))!=-1)
{
out.write(bb,0,len);
}
out.close();
type = 1;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
type = 2;
}
return type;
}
}
2在另外一個activity裡面調用這個方法DownFile().downIamge(path,name); 返回1就是下載成功 ,2 就顯示下載失敗
自己手寫的 望採納 不懂 可繼續追問

安卓手機http代理設置

代理伺服器手機都不能用,不要灰心,手機也可以支持代理伺服器上網。如上網瀏覽器、下載軟體等其它需要網路連接的軟體,都可正常的使用它們。我們來分享下怎麼樣設置手機代理伺服器,希望能幫助不會設置的朋友。

安卓手機http代理設置的方法

打開手機設置菜單,選擇“無線和網路”選項,然後進入WLAN設置界面

點擊無線網路名稱,進入網路設置界面,輸入無線網路密碼

點擊顯示高級選項,在代理設置欄中選擇手動,輸入代理伺服器主機名及代理伺服器埠號

⑹ 現如今,Android開發有成熟的框架嗎

1volley

項目地址 https://github.com/smanikandan14/Volley-demo
(1) JSON,圖像等的非同步下載;
(2) 網路請求的排序(scheling)
(3) 網路請求的優先順序處理
(4) 緩存
(5) 多級別取消請求
(6) 和Activity和生命周期的聯動(Activity結束時同時取消所有網路請求)

2 android學習手冊。例子、源碼、文檔全部搞定,採用androidstudo的目錄結構,360手機助手中下載。下面是截圖。

3、android-async-http

項目地址:https://github.com/loopj/android-async-http
文檔介紹:http://loopj.com/android-async-http/
(1) 在匿名回調中處理請求結果
(2) 在UI線程外進行http請求
(3) 文件斷點上傳
(4) 智能重試
(5) 默認gzip壓縮
(6) 支持解析成Json格式
(7) 可將Cookies持久化到SharedPreferences
4、Afinal框架

項目地址:https://github.com/yangfuhai/afinal
主要有四大模塊:
(1) 資料庫模塊:android中的orm框架,使用了線程池對sqlite進行操作。
(2) 註解模塊:android中的ioc框架,完全註解方式就可以進行UI綁定和事件綁定。無需findViewById和setClickListener等。
(3) 網路模塊:通過httpclient進行封裝http數據請求,支持ajax方式載入,支持下載、上傳文件功能。
(4) 圖片緩存模塊:通過FinalBitmap,imageview載入bitmap的時候無需考慮bitmap載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象。
FinalBitmap可以配置線程載入線程數量,緩存大小,緩存路徑,載入顯示動畫等。FinalBitmap的內存管理使用lru演算法
沒有使用弱引用(android2.3以後google已經不建議使用弱引用,android2.3後強行回收軟引用和弱引用,詳情查看android官方文檔),
更好的管理bitmap內存。FinalBitmap可以自定義下載器,用來擴展其他協議顯示網路圖片,比如ftp等。同時可以自定義bitmap顯示器,
在imageview顯示圖片的時候播放動畫等(默認是漸變動畫顯示)。
5、xUtils框架

項目地址:https://github.com/wyouflf/xUtils
主要有四大模塊:
(1) 資料庫模塊:android中的orm框架,一行代碼就可以進行增刪改查;
支持事務,默認關閉;
可通過註解自定義表名,列名,外鍵,唯一性約束,NOT NULL約束,CHECK約束等(需要混淆的時候請註解表名和列名);
支持綁定外鍵,保存實體時外鍵關聯實體自動保存或更新;
自動載入外鍵關聯實體,支持延時載入;
支持鏈式表達查詢,更直觀的查詢語義,參考下面的介紹或sample中的例子。
(2) 註解模塊:android中的ioc框架,完全註解方式就可以進行UI,資源和事件綁定;
新的事件綁定方式,使用混淆工具混淆後仍可正常工作;
目前支持常用的20種事件綁定,參見ViewCommonEventListener類和包com.lidroid.xutils.view.annotation.event。
(3) 網路模塊:支持同步,非同步方式的請求;
支持大文件上傳,上傳大文件不會oom;
支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT請求;
下載支持301/302重定向,支持設置是否根據Content-Disposition重命名下載的文件;
返迴文本內容的請求(默認只啟用了GET請求)支持緩存,可設置默認過期時間和針對當前請求的過期時間。
(4) 圖片緩存模塊:載入bitmap的時候無需考慮bitmap載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象;
支持載入網路圖片和本地圖片;
內存管理使用lru演算法,更好的管理bitmap內存;
可配置線程載入線程數量,緩存大小,緩存路徑,載入顯示動畫等...
6、ThinkAndroid

項目地址:https://github.com/white-cat/ThinkAndroid
主要有以下模塊:
(1) MVC模塊:實現視圖與模型的分離。
(2) ioc模塊:android中的ioc模塊,完全註解方式就可以進行UI綁定、res中的資源的讀取、以及對象的初始化。
(3) 資料庫模塊:android中的orm框架,使用了線程池對sqlite進行操作。
(4) http模塊:通過httpclient進行封裝http數據請求,支持非同步及同步方式載入。
(5) 緩存模塊:通過簡單的配置及設計可以很好的實現緩存,對緩存可以隨意的配置
(6) 圖片緩存模塊:imageview載入圖片的時候無需考慮圖片載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象。
(7) 配置器模塊:可以對簡易的實現配對配置的操作,目前配置文件可以支持Preference、Properties對配置進行存取。
(8) 日誌列印模塊:可以較快的輕易的是實現日誌列印,支持日誌列印的擴展,目前支持對sdcard寫入本地列印、以及控制台列印
(9) 下載器模塊:可以簡單的實現多線程下載、後台下載、斷點續傳、對下載進行控制、如開始、暫停、刪除等等。
(10) 網路狀態檢測模塊:當網路狀態改變時,對其進行檢
7、LoonAndroid

項目地址:https://github.com/gdpancheng/LoonAndroid
主要有以下模塊:
(1) 自動注入框架(只需要繼承框架內的application既可)
(2) 圖片載入框架(多重緩存,自動回收,最大限度保證內存的安全性)
(3) 網路請求模塊(繼承了基本上現在所有的http請求)
(4) eventbus(集成一個開源的框架)
(5) 驗證框架(集成開源框架)
(6) json解析(支持解析成集合或者對象)
(7) 資料庫(不知道是哪位寫的 忘記了)
(8) 多線程斷點下載(自動判斷是否支持多線程,判斷是否是重定向)
(9) 自動更新模塊
(10) 一系列工具類

熱點內容
iphone6如何刪除緩存 發布:2025-02-02 08:33:06 瀏覽:829
為什麼路由器的密碼是五位數 發布:2025-02-02 08:32:30 瀏覽:719
怎樣編程選股 發布:2025-02-02 08:22:02 瀏覽:417
電腦web應用伺服器 發布:2025-02-02 08:05:31 瀏覽:811
電腦存儲內存多少合適 發布:2025-02-02 08:00:15 瀏覽:110
登錄界面android 發布:2025-02-02 07:53:23 瀏覽:842
編譯時註解與運行時註解 發布:2025-02-02 07:53:14 瀏覽:818
怎樣登陸ftp 發布:2025-02-02 07:44:44 瀏覽:637
瘋狂點擊腳本 發布:2025-02-02 07:38:10 瀏覽:73
pss演算法 發布:2025-02-02 07:30:55 瀏覽:748