Изображение Uri не отображается внутри ScrollView

#android #android-layout #picasso

#Android #android-layout #пикассо

Вопрос:

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

Вот мой код TryActivity, в котором все работает нормально:

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.TryActivity">

<androidx.cardview.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="370dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="16dp"
    android:layout_marginEnd="8dp"
    android:padding="10dp"
    app:cardCornerRadius="10dp"
    app:cardElevation="5dp">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="12dp"
        android:paddingTop="8dp">

        <TextView
            android:id="@ id/time_const"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="8dp"
            android:text="@string/time_const"
            android:textColor="@android:color/black"
            android:textAppearance="?android:textAppearanceMedium"
            android:textStyle="italic"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.24"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <TextView
            android:id="@ id/pic_time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="12dp"
            android:textAppearance="?android:textAppearanceMedium"
            android:textColor="@android:color/darker_gray"
            android:textStyle="bold"
            app:layout_constraintBaseline_toBaselineOf="@ id/time_const"
            app:layout_constraintStart_toEndOf="@ id/time_const" />

        <ImageView
            android:id="@ id/camera_pic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="16dp"
            android:layout_marginEnd="16dp"
            android:tint="@color/colorPrimary"
            android:contentDescription="@string/app_name"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:srcCompat="@drawable/camera" />

        <ImageView
            android:id="@ id/click_click"
            android:layout_width="match_parent"
            android:layout_height="250dp"
            android:maxHeight="250dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="16dp"
            android:layout_marginEnd="8dp"
            android:layout_marginBottom="16dp"
            android:contentDescription="@string/app_name"
            app:layout_constraintBottom_toTopOf="@ id/camera_pic"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@ id/time_const"/>

    </androidx.constraintlayout.widget.ConstraintLayout>

</androidx.cardview.widget.CardView>

</FrameLayout> 
  

Вот мой Java-код для этого действия:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_try);

    ImageView imageView = findViewById(R.id.click_click);

    Picasso.get()
            .load("file:/storage/emulated/0/Pictures/JPEG_20190330_190925_8486610829519670776.jpg")
            .into(imageView);
}
  

введите описание изображения здесь

Но если я попытаюсь сделать то же самое в своем исходном действии, это не сработает:

Вот мой XML-макет:

 <?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:fitsSystemWindows="true">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="16dp"
    android:paddingBottom="32dp"
    tools:context=".ui.DetailsActivity"
    tools:showIn="@layout/activity_details">

    <androidx.cardview.widget.CardView
        android:id="@ id/cardView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        app:cardCornerRadius="10dp"
        app:cardElevation="5dp">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingBottom="12dp"
            android:paddingTop="8dp">

            <TextView
                android:id="@ id/p_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:layout_marginEnd="8dp"
                android:textAppearance="?android:textAppearanceLarge"
                android:textColor="@color/colorPrimary"
                android:textStyle="italic|bold"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <TextView
                android:id="@ id/p_occupation"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:layout_marginTop="5dp"
                android:layout_marginEnd="8dp"
                android:textAppearance="?android:textAppearanceMedium"
                android:textColor="@android:color/darker_gray"
                android:textStyle="bold"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@ id/p_name" />

            <TextView
                android:id="@ id/loc_const"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:layout_marginTop="16dp"
                android:layout_marginEnd="8dp"
                android:text="@string/loc_const"
                android:textAppearance="?android:textAppearanceMedium"
                android:textColor="@android:color/holo_red_dark"
                android:textStyle="italic"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.14"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@ id/p_occupation" />

            <TextView
                android:id="@ id/p_city"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="12dp"
                android:textAppearance="?android:textAppearanceMedium"
                android:textColor="@android:color/black"
                app:layout_constraintBaseline_toBaselineOf="@ id/loc_const"
                app:layout_constraintStart_toEndOf="@ id/loc_const" />

            <TextView
                android:id="@ id/sal_const"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:text="@string/sal_const"
                android:textAppearance="?android:textAppearanceMedium"
                android:textColor="@android:color/holo_red_dark"
                android:textStyle="italic"
                app:layout_constraintEnd_toEndOf="@ id/loc_const"
                app:layout_constraintTop_toBottomOf="@ id/loc_const" />

            <TextView
                android:id="@ id/p_sal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:textAppearanceMedium"
                android:textColor="@android:color/black"
                app:layout_constraintBaseline_toBaselineOf="@ id/sal_const"
                app:layout_constraintStart_toStartOf="@ id/p_city" />

            <TextView
                android:id="@ id/date_const"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:text="@string/date_const"
                android:textAppearance="?android:textAppearanceMedium"
                android:textColor="@android:color/holo_red_dark"
                android:textStyle="italic"
                app:layout_constraintEnd_toEndOf="@ id/sal_const"
                app:layout_constraintTop_toBottomOf="@ id/sal_const" />

            <TextView
                android:id="@ id/p_date"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:textAppearanceMedium"
                android:textColor="@android:color/black"
                app:layout_constraintBaseline_toBaselineOf="@ id/date_const"
                app:layout_constraintStart_toStartOf="@ id/p_sal" />

        </androidx.constraintlayout.widget.ConstraintLayout>

    </androidx.cardview.widget.CardView>

    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="370dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="8dp"
        android:padding="10dp"
        app:cardCornerRadius="10dp"
        app:cardElevation="5dp">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingBottom="12dp"
            android:paddingTop="8dp">

            <TextView
                android:id="@ id/time_const"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:layout_marginTop="8dp"
                android:layout_marginEnd="8dp"
                android:text="@string/time_const"
                android:textColor="@android:color/black"
                android:textAppearance="?android:textAppearanceMedium"
                android:textStyle="italic"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.24"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <TextView
                android:id="@ id/pic_time"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="12dp"
                android:textAppearance="?android:textAppearanceMedium"
                android:textColor="@android:color/darker_gray"
                android:textStyle="bold"
                app:layout_constraintBaseline_toBaselineOf="@ id/time_const"
                app:layout_constraintStart_toEndOf="@ id/time_const" />

            <ImageView
                android:id="@ id/camera_pic"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_marginEnd="16dp"
                android:tint="@color/colorPrimary"
                android:contentDescription="@string/app_name"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:srcCompat="@drawable/camera" />

            <ImageView
                android:id="@ id/clicked_pic"
                android:layout_width="match_parent"
                android:layout_height="250dp"
                android:maxHeight="250dp"
                android:layout_marginStart="8dp"
                android:layout_marginTop="16dp"
                android:layout_marginEnd="8dp"
                android:layout_marginBottom="16dp"
                android:contentDescription="@string/app_name"
                app:layout_constraintBottom_toTopOf="@ id/camera_pic"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@ id/time_const"/>

        </androidx.constraintlayout.widget.ConstraintLayout>

    </androidx.cardview.widget.CardView>

</LinearLayout>

</ScrollView>
  

Вот скриншот без отображения изображения:

Скриншот текущей проблемы

Ответ №1:

Здесь я допустил глупую ошибку, я устанавливал это изображение с щелчком в изображении значка приложения, поэтому оно было растянуто с основным цветом приложения. Это заняло несколько часов с моего дня!!

Комментарии:

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