Пикассо загружает пейзажное изображение, но не загружает портрет в информационное окно маркера - PullRequest
0 голосов
/ 13 июня 2018

У меня есть картографическое действие, в котором я хочу настроить информационное окно для моих маркеров.В этом окне я хочу загрузить изображение из файла и добавить дополнительный текст (который я добавлю позже).

Проблема в том, что когда у меня есть файл изображения в альбомной ориентации, фотография загружается ипоказано в информационном окне маркера с правильными размерами.Однако, если файл находится в портретном режиме, появляется информационное окно с правильным размером (в действительности, портретное), но изображение не отображается.Я проверил, что файл портретного изображения существует, у него правильный путь к файлу, но я не могу понять, почему портретные изображения не отображаются.

Вот мой код:

        // Initializing the custom info window as per info_window.xml
        if (mMap != null) {
            mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
                @Override
                public View getInfoWindow(Marker marker) {
                    return null;
                }

                @Override
                public View getInfoContents(Marker marker) {

                    View view = getLayoutInflater().inflate(R.layout.info_window, null);
                    mImageView = view.findViewById(R.id.markerImageView);

                    for (Picture picture : mPictureList) {
                        if (picture.getMarker().equals(marker)) {
                            String path = picture.getPicturePath();
                            int width = 160;
                            int height = 90;
                            ExifInterface data = null;
                            try {
                                data = new ExifInterface(path);
                                String orientation = data.getAttribute(ExifInterface.TAG_ORIENTATION);
                                // 1 for landscape, 3 for landscape upside down
                                // 6 for portrait, 8 is portrait upside down
                                if (orientation.equalsIgnoreCase("6") || orientation.equalsIgnoreCase("8")) {
                                    width = 90;
                                    height = 160;
                                }
                            } catch (IOException e) {
                                e.printStackTrace();
                            }

                            // setting the new dimensions in dp
                            mImageView.getLayoutParams().height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, height, getResources().getDisplayMetrics());
                            mImageView.getLayoutParams().width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, width, getResources().getDisplayMetrics());
                            mImageView.requestLayout();

                            Picasso.with(MapsActivity.this)
                                    .load("file://" + path)
                                    .resize(width, height)
                                    .centerCrop()
                                    .into(mImageView);
                        } else {
                            Log.d(TAG, "getInfoContents: Didn't find any picture with that marker");
                        }
                    }
                    return view;
                }
            });
        }

И info_window.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

<ImageView
    android:id="@+id/markerImageView"
    android:layout_width="160dp"
    android:layout_height="160dp"/>

</LinearLayout>

1 Ответ

0 голосов
/ 18 июня 2018

Я наконец нашел решение этой проблемы.Я использовал последнюю версию Picasso 2.3.2, в которой возникла проблема с отображением изображений (согласно https://github.com/square/picasso/issues/530) я перешел на версию 2.2.0, и проблема была решена.

PS Версия 2.4.0 должно решить проблему, описанную выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...