Android通過按鈕選取相簿圖片的方法
阿新 • • 發佈:2020-09-06
1.為按鈕設定點選事件:
//獲取所需按鈕
Button btn1 = (Button) findViewById(R.id.btn1);
//為btn1設定點選事件,點選後觸發selectPicture()函式
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
startActivityForResult(selectPicture(), 1); //注意這裡為此方法設定了返回碼為1,與下面onActivityResult函式中的情況相對應
}
});
2.selectPicture()函式
//此函式使得點選按鈕後彈出手機系統圖庫,之後便可選擇圖片
public Intent selectPicture()
{
Intent intent = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
return intent;
}
3.重寫onActivityResult方法
//這部分程式碼主要功能是噹噹返回碼為1且返回正常時獲取到選擇圖片的路徑,並能進一步轉為Bitmap型變數//之後我們可以通過使用路徑方式和Bitmap兩種方式對圖片進行操作
//例如使用setImageBitmap(Bitmap bp)方法將圖片展示到ImageView上
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1 && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
Bitmap bp = BitmapFactory.decodeFile(picturePath);
}
super.onActivityResult(requestCode, resultCode, data);
}