Member 13882534 Ответов: 0

Не удается получить изображение из Dropbox, книги


Я могу использовать следующий код, чтобы получить изображение из Dropbox, он открывает Droxbox и может выбрать и загрузить изображение. Однако проблема заключается в том, что загруженное изображение не может быть показано на ImageView. Пожалуйста, помогите, спасибо.

Если мой метод не работает, пожалуйста, предложите другие способы, которые я могу использовать для получения изображения из dropbox в imageview. Спасибо.

Что я уже пробовал:

Code: getImage

Image.setOnClickListener(new OnClickListener() {


            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                List<String> data= new ArrayList<String>();
                data.add("Import from local device.");
                data.add("Take camera image.");

                AdapterGetImage adapter = new AdapterGetImage(CropImageActivity.this);

                adapter.setData(data);

                new AlertDialog.Builder(CropImageActivity.this).setAdapter(adapter, new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        if (which==0) {
                            final Intent intent = new Intent();
                            intent.setType("image/*");
                            intent.setAction(Intent.ACTION_GET_CONTENT);
                            startActivityForResult(Intent.createChooser(intent, "Select File"),GALLERY_CHOOSER_INTENT);
                        }
                        else if(which==1)
                        {

                            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                            if (intent.resolveActivity(getPackageManager()) !=null)
                            {
                                File photoFile = null;
                                try{
                                    photoFile = createImageFile();
                                }
                                catch (IOException ex)
                                {
                                    ex.printStackTrace();
                                }
                                if (photoFile !=null)
                                {
                                    Uri photoURI = FileProvider.getUriForFile(CropImageActivity.this,
                                            "fileprovider",photoFile);
                                    intent.putExtra(MediaStore.EXTRA_OUTPUT,photoURI);
                                    startActivityForResult(intent,CAMERA_IMAGE);
                                }
                            }

                        }

                    }

                }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                    }
                })
                .setCancelable(false)
                .show();

                });


Код: получить путь к изображению
public static String getPath(final Context context, final Uri uri) {

        // check here to KITKAT or new version
        final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;

        // DocumentProvider
        if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {

            // ExternalStorageProvider
            if (isExternalStorageDocument(uri)) {
                final String docId = DocumentsContract.getDocumentId(uri);
                final String[] split = docId.split(":");
                final String type = split[0];

                if ("primary".equalsIgnoreCase(type)) {
                    return Environment.getExternalStorageDirectory() + "/"
                            + split[1];
                }
            }
            // DownloadsProvider
            else if (isDownloadsDocument(uri)) {

                final String id = DocumentsContract.getDocumentId(uri);
                final Uri contentUri = ContentUris.withAppendedId(
                        Uri.parse("content://downloads/public_downloads"),
                        Long.valueOf(id));

                return getDataColumn(context, contentUri, null, null);
            }
            // MediaProvider
            else if (isMediaDocument(uri)) {
                final String docId = DocumentsContract.getDocumentId(uri);
                final String[] split = docId.split(":");
                final String type = split[0];

                Uri contentUri = null;
                if ("image".equals(type)) {
                    contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
                } else if ("video".equals(type)) {
                    contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
                } else if ("audio".equals(type)) {
                    contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
                }

                final String selection = "_id=?";
                final String[] selectionArgs = new String[] { split[1] };

                return getDataColumn(context, contentUri, selection,
                        selectionArgs);
            }
        }
        // MediaStore (and general)
        else if ("content".equalsIgnoreCase(uri.getScheme())) {

            // Return the remote address
            if (isGooglePhotosUri(uri))
                return uri.getLastPathSegment();

            return getDataColumn(context, uri, null, null);
        }
        // File
        else if ("file".equalsIgnoreCase(uri.getScheme())) {
            return uri.getPath();
        }

        return null;
    }


Код: результат деятельности
@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        try {


            if (requestCode == GALLERY_CHOOSER_INTENT) {
                if (null == data) return;

                String selectedImagePath;
                Uri selectedImageUri = data.getData();

                //MEDIA GALLERY
                selectedImagePath = getPath(getApplicationContext(), selectedImageUri);


                cropImageView.requestLayout();
                LoadPicture(selectedImagePath);
                Toast.makeText(this,"uri" +selectedImagePath,Toast.LENGTH_LONG).show();

            }


        }
        catch (Throwable ex) {
            AlertDialog.Builder builder = new AlertDialog.Builder(ImageActivity.this);
            builder.setTitle("Error:");
            builder.setMessage("We apologize for the inconvenience caused, data" +data.getData()
                    +"\n"
                    +"\n"
                    +ex.toString())
                    .setCancelable(false)
                    .setPositiveButton("Ok",
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog,
                                        int id) {
                                    Intent goToStart = new Intent(
                                            CropImageActivity.this,
                                            HomeActivity.class);
                                    goToStart
                                            .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                    startActivity(goToStart);
                                }
                            });

            AlertDialog alert = builder.create();
            alert.show();

        }
    }

David Crow

Образ есть образ, независимо от того, откуда он пришел. Если вы знаете, что изображение было успешно загружено, или если ваш код "показать изображение" может отображать другие произвольные изображения, существующие на вашем устройстве, Dropbox можно удалить из уравнения. Сделайте все возможное, чтобы устранить ненужные вещи, и сосредоточьтесь на том, что у вас осталось.

0 Ответов