xml에서 ImageView가 보이지 않는 이유?

조회수 1322회

xml에서 ImageView는 버튼 역할도 아니고 그냥 이미지 보이는 용인데 왜 안 보이는지 모르겠어요.

버튼 역할을 이미지뷰와 그 밑에 텍스트뷰를 감싸는 LinearLayout이 하고있어요.

안드로이드 스튜디오에서는

이미지

이렇게 잘 보이는데 실제로 돌리면(애뮬X)

이미지

이렇게 떠요.

위에 텍스트뷰는 자바파일에서 건드린게 있어서 안 보이는게 맞는데 이미지뷰는 아무런 기능도 없는데 안 보이는지 모르겠어요.

혹시 몰라 이미지뷰가 있는 부분 xml 소스 올릴게요.

...
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:orientation="horizontal"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/linearLayout2">

        <LinearLayout
            android:id="@+id/setting_btn_check"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:onClick="onClick"
            android:orientation="vertical">

            <ImageView
                android:layout_width="40dp"
                android:layout_height="40dp"
                app:srcCompat="@drawable/icon_btn_ok" />

            <TextView
                android:id="@+id/textView24"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="확인" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/setting_btn_cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="onClick"
            android:gravity="center"
            android:layout_marginLeft="120dp"
            android:orientation="vertical">

            <ImageView
                android:layout_width="40dp"
                android:layout_height="40dp"
                app:srcCompat="@drawable/icon_btn_delete_circle" />

            <TextView
                android:id="@+id/textView25"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="취소" />
        </LinearLayout>
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

혹시 이유를 아시면 가르쳐주세요.

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

  • app:srcCompat 속성 말고 android:src 속성을 이용해보세요.

    app:srcCompat 속성은 AppCompat 라이브러리의 속성이여서 만약 Activity가 AppCompatActivity를 확장하지 않는다면 안 될수도 있습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
  • 버튼으로 진행하실 거면 ImageView 대신 ImageButton 에서 android:src = "@drawable/icon_btn_delete_circle" 를 사용해 보시고요 이미지 파일 크기가 이미지 뷰보다 큰 경우는 이미지 뷰에 잘려서 보이기 때문에 android:scaleType="fitXY"를 추가해 보시는 것도 추천 드립니다.

    • fitXY속성은 참고로 이미지 뷰에 src 이미지를 맞춰 주는 역할을 합니다. hoho00 2020.9.10 13:25

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)