Android大圖片上傳
❶ Android圖片批量上傳怎麼保證上傳順序
我一般都是通過遍歷集合的方式來上傳圖片。而且一般都不會去管這個上傳的順序,只需要服務端按你需要返回數據就可以了
❷ android圖片壓縮庫-說說在Android中如何壓縮圖片
Android黑科技,圖片終極壓縮一、支持自定義配置、不失真和批量處理
二、圖片上傳為什麼要壓縮
1、圖片伺服器空間限制,磁碟昂貴
2、網路不穩定,大文件需要斷點續傳
3、盡可能避免安卓OOM異常
4、後台約定的規則<200KB
5、需要上傳原圖的應用有醫院臨床項目、金融銀行
三、圖片壓縮流程
1、遞歸每張圖片
2、設置圖片格式
png,jpg,webp
3、質量壓縮(format,quality,baos)
由於png是無損壓縮,所以設置quality無效(不適合作為縮略圖)
采樣率壓縮
縮小圖片解析度,減少所佔用磁碟空間和內存大小
縮放壓縮(bitmap,null,rectF,null)
減少圖片的像素,降低所佔用磁碟空間大小和內存大小,可用於緩存縮略圖
JNI調用JPEG庫
Android的圖片引擎使用的是閹割版的skia引擎,去掉了圖片壓縮中的哈夫曼演算法
4、像素修復
5、返回壓縮
6、完成壓縮
demo:
參考:
Luban框架
缺點
1、當沒有設定壓縮路徑時,拋異常無閃退
2、源碼中,壓縮比率固定值60,無法修改
3、壓縮配置,參數不太適應真實項目需求
4、不能指定壓縮大小,比如100KB以內
說說在Android中如何壓縮圖片目前存在兩種壓縮圖片方式:
而圖片有三種存在形式:
bigmap在內存中的大小是按像素計算的,也就是width*height,所以如果需要在Android中顯示照片,那麼就必須進行按比例壓縮,避免因為內存消耗過大,導致APP退出。
是不是很簡單呀O(∩_∩)O哈哈~
Android圖片壓縮-大小與質量壓縮以及圖片保存一、前言:
2.質量壓縮
注意:
第二次壓縮之前都要先清空();再進行壓縮(,quality,baos);
有時候我們採用質量壓縮沒有效果,有可能是每次壓縮的質量過小,所以我們可以嘗試修改壓縮質量(quality)是10;
quality壓縮機提示,0-100。0表示壓縮
小尺寸,100意味著最大質量的壓縮。一些
格式,如無損的PNG,將忽略質量設定;
3.混合方式壓縮
鏈接:
❸ 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手機裡面的照片能批量上傳到伺服器嗎
這個圖片存放的位置是根據你的圖片來源而定的。一般是放在sdcard下的某個目錄下的,
。我來給你說下思路:服務端(android手機)這邊需要寫個工具類,來遍歷SD卡下的文件,只顯示jpg和png的圖片。主類中有個按鈕來添加圖片,還有一個按鈕是用來上傳圖片,然後寫個監聽,用來接收服務端發回的消息。...服務端這邊寫個監聽來接收客戶端發來的消息,保存發過來的數據流。至於手機上能顯示這張圖片,只要在寫個imageview,把圖片資源載入上就ok啦,你可以去網上搜索一下「sd上的文件上傳」,希望可以幫到你哦哦
❺ 如何將Android設備的照片傳輸到Mac OS X
因為幾乎所有的Android設備,包括深受用戶歡迎的Nexus和Galaxy S系列手機,都可以被OS X內置的攝像頭應用程序識別為一個數碼相機;你要做的只是打開相應的應用程序,然後使用USB線將Android設備連接到Mac上。我們說「幾乎所有的Android設備」,是因為一些古怪的設備並不能被識別為數碼相機。如果你手裡恰好有一台這樣的設備,不用著急,我們還有一個應用:「Android文件傳輸」,它可以在你的Android設備不能被正確的識別為數碼相機的時候,依然能夠讓你將照片拷貝到Mac里。下面我們會分別介紹這兩種拷貝文件的方法。 長期使用Mac系統的用戶用戶會發現,除兩個應用使用上的微小差異外,從數碼相機中復制照片,就像從其他iOS設備,比如iPhone、iPod touch或者iPad中拷貝其他文件一樣簡單。 使用圖像捕捉從 Android設備中復制照片 圖像捕捉是從數碼外設中向Mac復制照片的首選。它小巧、快速、使用方便並且提供了縮略圖預覽功能,讓你直接刪除不需要保留的圖片。你不需要繁瑣的步驟就能實現你想要的功能。 · 使用USB線將Android設備連接都Mac上 · 啟動「圖像捕捉」應用。如果你不知道在哪裡找到它,去 /Applications/ 下看看 · 在窗口左側「設備」列表下找到你的Android手機 · 選擇圖片的在你Mac上的儲存路徑(Mac會自動為你保存圖片,但是如果你有多個數碼設備,強烈建議你選擇一個不同的文件夾用來區分不同的設備) · 點擊窗口右下角「全部導入」,這時所有照片會復制到Mac里 如果你不想導入全部照片到你的Mac裡面,可以在應用里選中你想導入的圖片,點擊「導入」(而不是「全部導入」)就可以了。 有一些Android設備並不很好的與圖像捕捉配合。如果你恰好遇到了這種設備,可以使用Google 出品的Android文件傳輸應用來復制文件使用Android文件傳輸應用來復制照片到Mac 如果前面提到的復制文件「第一選擇」在你的Android設備上恰好不能工作,你可以試試「第二選擇」: Android文件傳輸。它是一個可以在Android設備和Mac之間互相傳輸文件的應用。「文件傳輸」意味著可以傳輸任何文件,不僅僅局限與照片。這個應用幾乎支持了所有運行Android 3.0及更新操作系統的設備。 · 從Android.com下載並安裝Android文件傳輸(下載後直接放到/Applications/目錄下) · 使用USB數據線將Android設備連到Mac上 · 運行Android文件傳輸,它會自動識別你的設備 · 一般來說,照片會存儲在「DCIM」、「Pictures」目錄下,兩個目錄都有可能 · 現在可以像管理Mac本地文件一樣來操作這些照片了:使用滑鼠拖拽照片, 就可以復制到你的Mac里 當你使用Android文件傳輸向Mac內拷貝文件的時候,在窗口底部會出現進度條、預計剩餘時間、圖片數量和一個取消文件操作的按鈕。 在前面提到的兩個的文件夾中,「DCIM」一般用於存儲攝像頭拍攝的照片,而「Pictures」一般用於一些應用儲存圖片。當然,並不是所有的設備都會按照這種方式存儲,所以需要把兩個文件夾下的圖片都復制一次。 如果你是一個有Android平板或者手機的Mac用戶,那Android文件傳輸應該是你Mac中一個必備軟體。使用它可以方便、快捷地瀏覽Android設備中絕大部分文件。有一點需要注意的是,不推薦你直接使用它隨意訪問或者更改Android設備上的文件,尤其是電子郵件、日歷、筆記:這樣做會損壞你的文件。 推薦使用同步軟體在Mac OS X 和Android設備之間同步這些數據。 使用iPhoto有的Mac用戶會推薦iPhoto:連接設備到Mac上,打開iPhoto,它會將Android設備識別為一個數碼相機、自動搜索設備內的圖片並提供了一個「全部導入」的功能。其實iPhoto的主要功能是管理照片而不是傳輸照片, 所以我們不具體介紹它的使用方式了。你如果對此感興趣,可以自行Google它的使用方式並與我們交流使用感受。 使用預覽預覽是OS X內默認的圖片查看應用,也可以作為從各種Android設備中拷貝照片到Mac的工具。 · 把Android設備連接到Mac上 · 點擊「文件」菜單,然後選擇「從(你的設備名稱)導入」 · 選中你想要導入的照片,然後點擊「導入」
❻ Android發布主流應用市場icon&應用截圖尺寸
*應用小圖標:尺寸:16 * 16、大小20K以內、PNG格式。
*應用圖標:尺寸:512 * 512、大小200K以內、PNG格式
*應用截圖:請上傳4-5張截圖(尺寸保持一致),單張圖片不超過1M。截圖不能小於320*480像素, 推薦480*800像素。JPG、PNG格式。
*應用圖標:圖標需為正方形。大小:2MB 以內;尺寸:216*216px;格式:PNG、 WEBP。
*應用截圖和視頻:您可以在這里上傳應用詳情頁展示的素材。介紹截圖是必填素材,其他素材可選填,如果您提交了其他素材可能會讓該應用在華為應用市場客戶端有更好的展示效果。
豎向截圖:需上傳 3~5 張。大小:2MB 以內;尺寸:450*800px;格式:PNG、 JPG、 JPEG、 WEBP。(推薦使用豎向截圖)
*應用圖標:請確保上傳的圖標和APK內的圖標一致(512 X 512,png格式)
*應用截圖:請至少上傳3張圖片,至多5張截圖,大小不大於5M,1080*1920。
*icon:要求與安裝包中圖標一致。尺寸:512*512px,圖片格式:PNG,小於1M。
*上傳豎版截圖:請上傳3-5張截圖,支持JPG、PNG格式。截圖尺寸要求:1080*1920,單張圖片不能超過1M。請去除截圖中的頂部狀態欄的通知圖標,圖片中不得使用其他品牌的手機作為邊框或宣傳圖
*應用icon:支持jpg/png格式,尺寸要求長等於寬,不低於256*256,不超過512*512,大小50k以內,僅支持直角圖標,
*上傳截圖:上傳3-5張清晰截圖。尺寸為豎圖480*800,格式為jpg/png,每張圖片尺寸一致,單張圖片不超過2MB)
*icon:PNG 格式,512 X 512 像素,小於 1024 KB。
*截圖:JPG/PNG 格式,最小 320 像素,最大 3840 像素,圖片比例 2:1,至少需要4個圖片,最多可上傳8個。可以注冊4~8張圖片,圖片將會按照您的注冊順序進行展示。
*應用圖標:要求與安裝包中圖標一致。尺寸:512*512PX,圓角半徑弧度:70PX,圖片格式:PNG。
應用截圖: 請上傳4-5張截圖(尺寸保持一致),支持JPG、PNG格式。截圖尺寸要求:不小於800*480(480*800),單張圖片不能超過3M。請去除截圖中的頂部通知欄。
*應用圖標:尺寸512x512,格式PNG,小於1M。
*應用截圖:請上傳至少 3 張圖片,規格:1280 x 720或720 x 1280,1800 x 1012或1012 x 1800,1920 x 1080或1080 x 1920,2560 x 1440或1440 x 2560
圖片請勿出現與應用實際功能無關的內容
圖片請勿出現重復、拉伸、壓縮、模糊、黑(白)邊、黑(白)角
圖片請勿出現第三方應用市場LOGO或其他品牌手機外觀素材,推薦使用魅族手機外觀素材
*應用圖標
請上傳PNG格式的圖標,尺寸:200X200 px,大小:小於800KB。
請開發者重點關注以下注意事項,大部分應用曾因此不合規被拒絕:
1.提交應用圖標必須與渠道包內解析圖標保持一致
2.應用圖標必須為透明背景,不可存在白邊、藍邊等特殊情況
*應用截圖
請上傳JPG或PNG格式的圖片,最小尺寸:800 X480 px,單張圖片小於1M。
請開發者重點關注以下注意事項,大部分應用曾因此不合規被拒絕:
1.截圖數量:4-6張(每張截圖不得相同,且需保持尺寸一致);
2.截圖必須與軟體實際運行內容一致;
3.截圖中不得含有與App本身無關的應用圖標;
4.截圖不得為應用啟動畫面;
5.請務必上傳豎版截圖
❼ 安卓照片怎麼導入蘋果手機
將Android手機照片導入Apple手機的方法如下:
1、在兩部手機上都安裝網路Netdisk應用程序,打開Android手機以進入網路Netdisk,然後打開開關以進行自動圖片備份。如圖所示:
❽ Android圖片批量上傳的功能。(圖片比較大)
Android中上傳圖片或者下載圖片,使用最多的是xUtils和imageloader、glide,選用這兩種的哪一種框架都行,因為是批量和圖片大容易造成界面卡以及上傳速度慢,對圖片操作不當就容易造成OOM異常,一般對於批量上傳大圖片都需要對圖片也處理,然後在上傳第一步需要對圖片進行比例壓縮之後再進行質量壓縮,處理之後的圖片比之前的圖片會小很多,再加上框架的上傳處理,會有很好的效果,希望對你有所幫助