본문 바로가기

Study/Android

Android : 배경에 이미지 넣기

이미지를 넣을 때 ImageView라는 태그를 사용합니다.

쉽게 생각해보면 배경 이미지를 넣을 때 ImageView를 사용해서 이미지를 넣어주고 뷰포트 너비와 높이만큼 늘려주면 될 것이라고 생각할 수 있습니다.

물론 틀렸다고 말할 수는 없지만 옳은 방법은 아닙니다.

<!-- 잘못된 예시 -->

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <Button
            android:text="Button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:id="@+id/button"
            tools:ignore="MissingConstraints"
            app:layout_constraintBottom_toBottomOf="parent" 
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintStart_toStartOf="parent" 
            app:layout_constraintEnd_toEndOf="parent"/>

    <!-- 배경 이미지를 넣기 위해 이미지를 불러옴 -->
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        app:srcCompat="@drawable/rose" 
        android:id="@+id/imageView"
        tools:layout_editor_absoluteY="0dp" 
        tools:layout_editor_absoluteX="0dp" 
        tools:ignore="MissingConstraints"/>

</androidx.constraintlayout.widget.ConstraintLayout>

배경 이미지를 넣기 위해 이미지를 불러오는 방법은 잘못된 방법이므로, 다른 방법을 생각해보아야 합니다.

바로 레이아웃에 배경 속성을 지정해주는 방법입니다.

<!-- 잘못된 예시 -->

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="@drawable/rose">
    <Button
            android:text="Button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:id="@+id/button"
            tools:ignore="MissingConstraints"
            app:layout_constraintBottom_toBottomOf="parent" 
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintStart_toStartOf="parent" 
            app:layout_constraintEnd_toEndOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>

레이아웃 마지막 속성에 android:background="@drawable/rose"을 추가해 주었습니다.

이렇게 배경에 이미지를 추가하고자 할 때는 이미지뷰를 사용하지 않고 레이아웃에 속성을 부여하여 사용합니다.

이 이미지는 drawable 디렉터리에 있는 rose라는 이미지입니다.