Назначение средства выбора Android возвращает URI изображения низкого качества (уменьшенное изображение) Примечание 8 - PullRequest
0 голосов
/ 04 сентября 2018

У меня странная проблема, и я надеюсь, что кто-нибудь может мне помочь.

У меня есть приложение, в котором пользователь может выбрать изображение из галереи и сделать несколько изданий .... Проблема возникает на некоторых устройствах, возвращенный URI изображения загружает миниатюру изображения.

В моем Note 8 (с режимом динамической фокусировки, AKA Portrait mode) всегда возвращается миниатюра этих снимков. Понятия не имею почему.

Мой код:

private void openGallery(){

    Intent pickPhotoIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

    try{
        startActivityForResult(pickPhotoIntent, PICK_IMAGE_REQUEST);
    }catch (ActivityNotFoundException e){
        FirebaseCrash.report(e);

        if(mToast != null)
            mToast.cancel();

        mToast = Toast.makeText(getApplicationContext(),getResources().getText(R.string.no_gallery),Toast.LENGTH_LONG);
        mToast.show();
    }
}


protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if(requestCode == REQUEST_PRO){
        if(resultCode == RESULT_OK){
            AnalyticsManager.UserEnteredIn(FirebaseAnalytics.getInstance(this),AnalyticsManager.PRICE);
            billingProcessor.purchase(Home.this,ImageXY.APESCT_PRO);
        }
    }
    else if(requestCode == PICK_IMAGE_REQUEST){
        if(resultCode == RESULT_OK){
            if(data != null && data.getData() != null){
                onImageReceived(data.getData());
            }else
                Toast.makeText(getApplicationContext(),"Image Loading Error",Toast.LENGTH_SHORT).show();
        }
    }

    if (!billingProcessor.handleActivityResult(requestCode, resultCode, data))
        super.onActivityResult(requestCode, resultCode, data);
}

public void onImageReceived(Uri imageUri) {

    Reference.image_uri = imageUri;

    Log.d("PICKER","RETURNED");
    Intent i = new Intent(getApplicationContext(),ImageEditingActivity.class);
    startActivity(i);
}

Заранее спасибо, надеюсь, кто-нибудь может мне помочь.

...