編輯:關於Android編程
在做公司項目時,遇到的需求:自定義顯示照片的網格視圖,顯示用戶最近采用相機拍攝的前20張照片。
我查看了系統提供的API,沒找到直接指向采用照相機拍照後存儲照片的路徑常量,若有網友知道,請告之,謝謝!
下面是我采用的笨辦法,主要代碼片段如下:
// 獲取SDcard卡的路徑
String sdcardPath = Environment.getExternalStorageDirectory().toString();
ContentResolver mContentResolver = MainActivity.this.getContentResolver();
Cursor mCursor = mContentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
new String[]{MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA},
MediaStore.Images.Media.MIME_TYPE + =? OR + MediaStore.Images.Media.MIME_TYPE + =?,
new String[] { image/jpeg, image/png }, MediaStore.Images.Media._ID + DESC); // 按圖片ID降序排列
while (mCursor.moveToNext()) {
// 打印LOG查看照片ID的值
long id = mCursor.getLong(mCursor.getColumnIndex(MediaStore.Images.Media._ID));
Log.i(MediaStore.Images.Media_ID=, id + );
// 過濾掉不需要的圖片,只獲取拍照後存儲照片的相冊裡的圖片
String path = mCursor.getString(mCursor.getColumnIndex(MediaStore.Images.Media.DATA));
if (path.startsWith(sdcardPath + /DCIM/100MEDIA) || path.startsWith(sdcardPath + /DCIM/Camera/)
|| path.startsWith(sdcardPath + DCIM/100Andro)) {
Log.i(image path=, path);
img_path.add(file:// + path);
}
}
mCursor.close();
Fragment 多層嵌套方法調用問題的解決方案
Fragment的產生與介紹Android運行在各種各樣的設備中,有小屏幕的手機,超大屏的平板甚至電視。針對屏幕尺寸的差距,很多情況下,都是先針對手機開發一套App,然後
Android系統篇之----解讀AMS遠端服務調用機制以及Activity的啟動流程
一、為何本文不介紹Hook系統的AMS服務在之前一篇文章中已經講解了 Android中Hook系統服務,以及攔截具體方法的功能了,按照流程本文應該介紹如何Hook系統的A
Android Activity生命周期
今天給大家詳解一下Android中Activity的生命周期,我希望我的講解不像網上大多數文章一樣,基本都是翻譯Android API,過於籠統,相信大家看了,會有一點點
Android MediaStore檢索視頻並播放
該文章是為了檢索手機上sd卡中的視頻,然後將檢索出來的相應視頻的縮略圖,名稱等視頻信息顯示在ListView上。點擊每個item後播放相應的視頻。 源代碼: 布局文件