這兩天在做專案時,做到上傳功能一塊時,碰到兩個問題,乙個是如何獲取所選的路徑,乙個是如何壓縮,在查了一些資料和看了別人寫的後總算折騰出來了,在此記錄一下。
首先既然要選擇,我們就先要獲取本地所有的,android已經為我們封裝好了該意圖。12
3451
intent intent =
new
intent(intent.action_pick,
null
);
//從列表中選擇某項並返回所有資料
2
intent.setdataandtype(
3
mediastore.images.media.external_content_uri,
//得到系統所有的
4
"image/*"
);
//的型別,image/*為所有型別
5
startactivityforresult(intent, photo_gallery);
然後我們重寫onactivityresult方法。
所以我們需要使用activity.managedquery(uri, projection, selection, selectionargs, sortorder)方法從資料中獲取相應資料。
uri: 需要返回的資源索引
projection: 用於標識有哪些資料需要包含在返回資料中。
selection: 作為查詢符合條件的過濾引數,類似於sql語句中where之後的條件判斷。
selectionargs: 同上。
sortorder: 對返回資訊進行排序。12
3456
78910
1112
1314
1516
1718
1920
2122
2324
2526
271
@override
2
protected
void
onactivityresult(
int
requestcode,
int
resultcode, intent data)
3
;
11
//獲取包含所需資料的cursor物件
12
@suppresswarnings
(
"deprecation"
)
13
cursor cursor = managedquery(data.getdata(), proj,
null
,
null
,
null
);
14
//獲取索引
15
int
photocolumn = cursor.getcolumnindexorthrow(mediastore.images.media.data);
16
//將游標一直開頭
17
cursor.movetofirst();
18
//根據索引值獲取路徑
19
string path = cursor.getstring(photocolumn);
20
21
22
break
;
23
}
24
25
default
:
26
break
;
27
}
Andriod相簿 拍照 裁剪總結
進行相簿 拍照 裁剪操作時需要檢查是否申請了如下許可權,注意6.0的動態許可權申請,並且檢查是否註冊了fileprovider android name android.permission.read external storage android name android.permission....
解決Android拍照儲存在系統相簿不顯示的問題
可能大家都知道我們儲存相簿到android手機的時候,然後去開啟系統相簿找不到我們想要的那張,那是因為我們插入的還沒有更新的緣故,先講解下插入系統相簿的方法吧,很簡單,一句 就能實現 mediastore.images.media.insertimage getcontentresolver mbi...
Android呼叫系統相簿和系統相機拍照
呼叫系統相機拍照 intent new intent mediastore.action image capture startactivityforresult intent,result camara image result camara image activity的標誌。自已定義 呼叫系統...