萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 手機 >  >> 手機應用 >> Android 教學

Android 調用系統 Gallery 獲取圖片實作詳解:Intent.ACTION_PICK 與 Uri 處理

Android 應用常需讓用戶從相簿選圖,推薦調用系統 Gallery 而非自行掃描路徑。本文解析 Gallery 的 Intent Filter 結構與回傳 Uri 處理邏輯。

Gallery AndroidManifest.xml 關鍵 Intent Filter

<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />

對應常量:Intent.ACTION_PICK,MIME 類型 image/* 選圖,video/* 選影片。

啟動 Gallery 選圖代碼範例

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, REQUEST_CODE_PICK_IMAGE);

onActivityResult 處理回傳 Uri

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE_PICK_IMAGE && resultCode == RESULT_OK && data != null) {
        Uri selectedImage = data.getData();
        // 透過 ContentResolver 查詢實際路徑或直接用 Uri 載入圖片
    }
}

源碼洞察:ImageGallery.launchCropperOrFinish()

選圖後 Gallery 內部邏輯:檢查檔案大小、是否超過 MMS 限制、處理 crop 參數(圓形裁剪等)、啟動裁剪 Activity 或直接返回 Uri。開發者可透過 intent.putExtra("crop", "circle") 要求裁剪。

掌握系統 Gallery Intent 機制,能以最少代碼實現穩健的選圖功能,兼容各廠商定製相簿。

copyright © 萬盛學電腦網 all rights reserved