簡體   English   中英

為什么Android作物意圖不返回ActivityResult?

[英]Why doesn't Android crop intent return ActivityResult?

我正在嘗試從媒體庫中裁剪圖像。 我可以訪問圖像,啟動默認裁剪工具甚至保存裁剪的圖像結果。

但是,如果裁剪成功,我正在使用的意圖將不會返回任何結果。

我的主要方法:

// Crop photo intent.
Intent intent = new Intent("com.android.camera.action.CROP", null);         
intent.setData(uri);   
intent.putExtra("outputX", outputX);
intent.putExtra("outputY", outputY);
intent.putExtra("aspectX", aspectX);
intent.putExtra("aspectY", aspectY);
intent.putExtra("scale", scale);
intent.putExtra("return-data", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, createTempCroppedImageFile());
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());

// Publish intent to crop picture.
activity.startActivityForResult(intent, activity.CROP_PHOTO_REQUEST_CODE);  

- OnActivityResult()方法 -

// Photo crop activity.
if (requestCode == CROP_PHOTO_REQUEST_CODE) {
    if (resultCode == RESULT_OK) {
        Log.d(TAG, "user cropped a photo");
        signupScreen.setImage(new PhotoTool(this).getTempCroppedImageFileLocation());
    } else
        Log.d(TAG, "user cancelled photo crop");
}

如果我取消了裁剪活動,我會成功獲得“用戶取消的照片裁剪”消息。 但是,如果我裁剪圖像,新裁剪的圖像將出現在目標目錄中,但OnActivityResult()函數永遠不會被調用。 是什么賦予了?

看看LogCat,我發現每次保存裁剪的圖像時,“JavaBinder”都會抱怨“Binding Transaction失敗”。 我知道這與內存有某種關系,但裁剪文件的大小只有24KB。

找到了這個問題的問題。 不幸的是,這是一個Android限制。

看到Android cropper不能超過256?

我已將裁剪圖像的輸出設置為400x400。 不幸的是Android的默認裁剪器只能做256x256。 這非常令人沮喪,特別是當沒有關於限制的文檔時。

你在裁剪意圖中調用setResult(int)link )嗎?

更新 :\\

發送RESULT_CANCELLED是默認值。 它會一直被發回,除非你實現了一些東西。

在您的裁剪意圖中,當您完成編輯(即用戶點擊完成按鈕或類似的東西)時,該過程的一部分將調用setResult(RESULT_OK)

例:

public void doneBTNPressed( View view ) {
    if ( view.getId() == R.id.doneBTN ) {
        this.isCropped = true;
    }
}

@Override    
protected void onPause() {
        if ( this.isCropped ) {
            setResult(RESUL_OK);
        }
        super.onPause();
    }

該結果(RESULT_OK,加上您指定的另一個整數)將傳遞回調用Activity(假設使用了startActivityForResult())。 根據您的需要,還有一些覆蓋。 在調用(父)活動中,您必須實現onActivityResultint,int,Intent)以從退出活動中獲取結果。

在上面提供的鏈接中,有一個標題為“開始活動和獲得結果”的部分,它解釋了從現有活動中獲取信息的多種方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM