0
私はこの質問が以前に尋ねられていることを理解しています。私はクロップされた画像をsqliteデータベースに保存しようとしています。私はonActivityResult()メソッドで次のようにAndroid-Image-Cropperクロッピングライブラリを使用しています:クロップされた画像をSQLiteデータベースに保存
イメージをビットマップとして保存しようとしている部分以外はすべて動作します。私はnullを得続けます。しかし、私はImageViewにラインを埋め込むことができます
ivTroopPhoto.setImageURI(result.getUri());
誰でもこのAPIを使用している場合は、この問題で私を助けることができます。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if ((requestCode == PIC_FROM_CAMERA) || (requestCode == PIC_FROM_GALLERY)) {
if (resultCode == RESULT_OK) {
Uri picUri = data.getData();
CropImage.activity(picUri)
.setGuidelines(CropImageView.Guidelines.ON)
.setFixAspectRatio(true)
.setAspectRatio(1, 1)
.start(this);
}
}
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
ibCameraIcon.setVisibility(View.GONE);
ivTroopPhoto.setVisibility(View.VISIBLE);
ivTroopPhoto.setImageURI(result.getUri());
tvTroopPhoto.setText(R.string.change_photo);
Log.d("dozer74", "==============================> Image Uri: " + result.getUri().getPath());
//Uri imageUir = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), result.getUri());
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream .toByteArray();
String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
Log.d("dozer74", "==========> Encoded Base64 Image: " + encoded);
} catch (IOException e) {
e.printStackTrace();
}
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Toast.makeText(this, String.format("Cropping failed: %s", result.getError()), Toast.LENGTH_LONG).show();
}
}
}
「私はヌルになっています。 nullになるのは何ですか? – greenapps
'result.getUri()。getPath()'価値は何ですか? '.toString()'メンバーのことですか? – greenapps
Androidには多くの画像リソースマネージャがあります。手動ではしないでください。 – Tugrul