android选择图片

2020-04-24  本文已影响0人  MacLi
/**
 * 选择图片,2种实现方式
 */
  public void pickBackgroundPicture() {
      Logutil.e("pickBackgroundPicture");
      // 只显示拍的照片和扩展存储根目录下的图片
      Intent intent = new Intent(Intent.ACTION_PICK,
              MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
      startActivityForResult(intent, REQUESTCODE_LOAD_IMAGE);

      // 可显示全部图片,但可能会弹出选择浏览图片的应用选择
/*Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, RESULTCODE_LOAD_IMAGE);
*/
  }
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
            case REQUESTCODE_LOAD_IMAGE:
                if (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 _Bitmap = null;
//          Bitmap _Bitmap = BitmapFactory.decodeFile(picturePath);
                    try {
                        _Bitmap = MyUtility.getBitmapByFile(new File(picturePath));
                    } catch (Exception e){
                        e.printStackTrace();
                    }
                    if (_Bitmap == null) {
                        Log.d(TAG, "picturePath=" + picturePath);
                        break;
                    }
                    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
                        mMainlayout.setBackground(new BitmapDrawable(getResources(),
                                _Bitmap));
                    } else {
                        mMainlayout.setBackgroundDrawable(new BitmapDrawable(
                                getResources(), _Bitmap));
                    }
//          setBackground(-1, _Bitmap, null, 2);
                    SharedPreferences.Editor _Editor = mSharedPreferences.edit();
                    _Editor.putString(KEY_SAVE_BACKGROUND, picturePath);
                    boolean _boolean = _Editor.commit();
                    if (false == _boolean) {
                        Log.d(TAG, "save background picture failed");
                    }
//                    cancelAlarm();
                }
                break;
        }
    }
上一篇下一篇

猜你喜欢

热点阅读