android拍照保存
1. 怎麼做才能使照片自動保存到外置存儲卡中
【解題思路】
默認情況下,Android手機如果有內置的SD卡,那麼照片保存位置就會保存在SD卡上。如果你的手機沒有設置保存位置為SD卡,那麼就需要藉助第三方APP實現。
【解題方法】
一般手機的照相功能都有自定義設置存儲位置,對於聯想A820t,首先進入「設置→系統設置→存儲選項中」,然後將其設置為SD卡。接著進入照相應用界面,點擊「菜單→存儲位置→SD卡」,這樣下次保存的照片就可以保存在SD卡上了(圖1)。
圖1
設置保存位置為SD卡
此外,一些手機的照相應用由於系統本身的限制無法更改存儲位置,我們可以利用第三方照相應用來替代,這些第三方應用一般都支持存儲位置的自定義設置。比如Android用戶可以使用「UCam全能相機」,啟動該應用後「設置→高級設置→其他設置→存儲路徑」,在打開的窗口中可以自行選擇保存照片的位置,這樣下次拍照後照片就保存在指定位置了(圖2)。
圖2
設置保存照片位置
小提示:
如果在存儲位置下無法顯示SD卡選項,請確保你的SD卡可以被系統識別,依次進入「設置→存儲」,查看是否已經正確識別SD卡。如果無法識別,則建議備份好資料後使用手機自帶組件進行格式化再嘗試。如果仍然無法識別,請進行系統升級(舊版相機應用無法自定義存儲位置)。
2. 瀹夊崜鎵嬫満鐩哥墖淇濆瓨鍦ㄥ摢涓鏂囦歡澶瑰晩
1銆侀栧厛鎵撳紑鎵嬫満涓葷晫闈㈡壘鍒扳滄枃浠剁$悊鍣ㄢ濊彍鍗曪紝鐒跺悗鐐瑰嚮榪涘叆銆傝繘鍏ュ埌鏂囦歡綆$悊鍣ㄧ晫闈㈠悗錛屽彲浠ュ乏鍙蟲粦鍔ㄦ潵鎵懼埌鈥淪D鍗$$悊鈥濋夐」錛堢瑪鑰呭亣瀹氭偍鐨勬墜鏈洪粯璁よ劇疆鎴愰栧厛瀛樺偍鍒癝D鍗★級錛岀劧鍚庤繘鍏ャ
2銆佸畨鍗撴墜鏈烘煡鐪嬬浉鏈虹収鐗囩殑鏂囦歡澶硅礬寰勬柟娉曞備笅錛氶栧厛鍦ㄦ岄潰涓婃壘鍒般愮浉鍐屻戣繖涓搴旂敤鍥炬爣錛岀偣鍑昏ュ浘鏍囪繘鍏ョ浉鍐岀$悊欏甸潰銆傝繘鍏ョ浉鍐屽悗錛岄夋嫨闇瑕佹煡鐪嬫枃浠惰礬寰勭殑鐓х墖錛岀偣鍑昏ョ収鐗囪繘鍏ョ収鐗囨祻瑙堟ā寮忋
3銆佹媿鐓у浘鐗囦繚瀛樹綅緗濡備笅錛氬傛灉淇濆瓨浣嶇疆涓烘墜鏈哄唴瀛樺垯鏄瘲D鍗DCIMCamera涓錛屽傛灉淇濆瓨浣嶇疆涓篠D鍗″垯鏄瘲D鍗DCIMCamera涓銆
4銆佹牴鎹涓嶅悓鍝佺墝瀹夊崜鎵嬫満鐨勫悗鏈熷紑鍙戱紝鏂囦歡澶瑰悕縐板彲鑳戒笉澶涓鏍鳳紝浣嗕竴鑸鏄鍦―CIM鐩褰曟枃浠跺す閲岃竟錛屽綋鐒朵篃浼氭湁鐗瑰埆錛屼緥濡傚湪閰鋒淳鎵嬫満涓鎵嬫満鎷嶇収鐨勫浘鐗囨槸瀛樻斁鍦ㄦ牴鐩褰曚腑鐨凱hoto涓銆
3. tplink安防app的數據存放在手機(安卓系統)里什麼位置
在安卓系統中,通過QQ拍攝的照片通常會被保存在SD卡中的「tencent」文件夾下的「mobileQQ」文件夾中的「-photo」文件夾內。
而安卓設備默認的拍照照片存儲路徑通常位於/sdcard/DCIM/100MEDIA或/sdcard/DCIM/Camera文件夾中。這里的「sdcard」指的是手機中的SD卡。常見的存儲位置包括DCIM文件夾內的Camera或100MEDIA文件夾。不過,由於不同品牌的安卓手機在後期開發時可能會有差異,所以文件夾名稱可能會有所不同,但它們都會位於DCIM目錄下。
此外,對於使用tplink安防app拍攝的照片,通常也會保存在手機的存儲空間中。具體存儲路徑可能會根據app的設置和手機系統版本有所不同。在大多數情況下,它們會保存在手機內部存儲的特定文件夾內,如/Android/data/com.tplink.somappname/files/或/sdcard/tplink目錄下。
需要注意的是,這些存儲路徑可能因手機品牌、型號以及安卓版本的不同而有所差異。對於具體的存儲位置,用戶可以在手機的文件管理器中查找,或者通過查看app的幫助文檔來確認。
4. Android調用手機相機拍照,保存圖片會出現2張解決辦法。
最近項目中使用系統相機拍照,保存圖片,發現一些問題。
讀取圖片旋轉角度,然後再旋轉回去。
使用BitmapFactory.Options,能更准確的獲取圖片格式,
判斷地址末尾 .gif 有時候會不準確(不推薦)
上傳伺服器,一般使用地址,但是用戶手動刪除圖片後,地址是無效的。為了防止地址無效,可以對需要上傳圖片地址做保存,但又希望系統讀取不到,可以對保存地址進行修改。
讀取圖片地址api
我們可以去系統相冊查看兩張圖片,會發現兩張圖片的地址是不一樣的,而且兩張圖片的大小也不同。
出現2張的原因是:
(1)調用系統相機,拍照完成我們會生成一個保存地址,而這個地址是: /storage/android/data/包名/Picture/ ,這張是我們保存的拍照圖片。
(2)相同的一張圖片在哪?這個地址是:/storage/Pictures/ ,這張圖片是系統復制的App目錄下Pictures中的圖片。
所以就會出現在系統相冊兩張圖片,但兩張圖片大小不一致,地址不同。
調用系統api,只能讀取到一張,是系統復制的那張,也就是 /storage/Pictures/ 目錄下的這張,但是/storage/android/data/包名/Picture/ 目錄下的沒有讀取到。
知道了問題,就有解決辦法,可分為三種方法:
(1)第一種方法:
保存圖片的時候,修改下地址(可參照標題 3 ,這樣讓系統無法識別出這張圖片),結果就是,我讀取不到,系統也別想讀取不到,在系統相冊里也就看不到這張圖片。
(2)第二種方法:
因為api無法讀取到,那我們就直接再讀取/storage/android/data/包名/Picture/ 下的文件,把圖片一塊加入到同一個集合中用於展示,這樣所有的圖片都有了,但是系統相冊中還是有兩張圖片,為解決這個問題。
(3)第三種方法:( )
在我們保存圖片的時候,直接保存到 /storage/Pictures/ 這個目錄下,也不用系統幫我們復制了,這樣就只會出現一張,而且我們也能調用api直接讀取到,兩個問題全都解決了,完美!
(如果以上有錯誤或者有更優美的方式,感謝指出並改之,與君共勉)
這是我項目中出現的問題,希望能夠幫助到你,Thanks,Bye!
5. 在android開發中,拍照後的圖片進行剪切後,怎麼保存呢
流,給你一個保存的方法
你應該是拍照以後再onActivityResult中回去圖片 再進行操作 得到最終的bitmap 在用下面的方法保存指定圖片的路徑、名稱保存。
// 保存拍攝的照片到手機的sd卡
private void SavePicInLocal(Bitmap bitmap) {
FileOutputStream fos = null;
BufferedOutputStream bos = null;
ByteArrayOutputStream baos = null; // 位元組數組輸出流
try {
baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] byteArray = baos.toByteArray();// 位元組數組輸出流轉換成位元組數組
picName = (list.size() + 1) < 10 ? memberInfoID + "-0"
+ (list.size() + 1) + ".jpg" : memberInfoID + "-"
+ (list.size() + 1) + ".jpg";
File file = new File(PHOTO_DIR, picName);
// 將位元組數組寫入到剛創建的圖片文件中
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(byteArray);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (baos != null) {
try {
baos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
這個保存的是縮略以後的 有50k左右,