본문 바로가기
개발/안드로이드 어플

③안드로이드어플개발 - ImageView 와 Toast (Drawable과 mipmap)

by 외노자개발 2022. 11. 27.
반응형

ImageView


이미지는 버튼 등과 달리 정적인 UI로서, 예를 들어 배경이나 혹은 무언가를 설명하는 이미지 등으로 사용하는 경우가 많을 것입니다. 여기에서는 3 종류의 표시 방법을 살펴 보겠습니다. 

 

 

레이아웃에 직접 포함하는 경우


이것은 처음부터 레이아웃에 쓰여 버리는 것입니다. drawable 에 img_1.jpg 를 넣은 상태로, 레이아웃 파일 activity_main.xml 에는 다음과 같이 기술합니다. 또한 레이아웃은 기본 ConstraintLayout을 사용하지만 RelativeLayout 또는 LinearLayout에서도 쉽게 만들 수 있습니다. 

 

activity_main.xml

    <ImageView
        android:src="@drawable/img_1"
        android:scaleType="centerCrop"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:contentDescription="@string/img_description1"/>

 

 

 

Toast


유저에게 「OK입니다」등 간단하게 메세지를 표시하면 유저빌리티가 향상됩니다 그럴 때는, Toast 를 사용합니다.

핸드폰 하단에 팝업창이 나옵니다.

 

하단의 사진은 이미지를 클릭시 나오는 "Toast테스트"화면입니다.

 

"토스트"는 빵이 아닙니다. 미국 영화를 보면 때때로 나옵니다. 건배 전에 "조지의 성공을 축하해!"등이라고 말하는 짧은 축사입니다.

 

코드를 확인해 보겠습니다.

 

Activity_ImageView.xml

    <ImageView
        android:id="@+id/test"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@mipmap/ic_launcher"/>

ImageView를 정의 합니다. id는 test로 지정했습니다.

mipmap과 drawable에 대해서는 밑에서 정의하겠습니다.

 

 

ImageViewActivity.java

private ImageView test;

test = (ImageView) findViewById(R.id.test);
        test.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(getApplicationContext(), "Toast테스트", Toast.LENGTH_SHORT).show();
            }
        });

Toast를 사용하여 팝업창을 띄우는 것을 했는데요. 코드를 확인해보겠습니다.

makeText() 메서드를 사용해서 1번째 인자에  getApplicationContext()를 입력합니다.

의미로는 자신의 클래스를 사용한다는 의미 입니다.

2번째 인자에는 출력할 메시지를 입력하고, 

3번째 인자에는 Toast.LENGTH_SHORT를 써서 출력되는 시간을 지정해줍니다. 

마지막으로 .show() 를 사용하여 화면에 출력해줍니다.

 

 

 

추가로 이미지가 지금 왼쪽에 치우쳐져 있는데 이것을 가운데로 옮겨보도록 하겠습니다.

Activity_ImageView.xml

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">

        <ImageView
            android:id="@+id/test"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:src="@mipmap/ic_launcher"/>
    </LinearLayout>

<LinearLayout> 이 추가되었는데요. 

여기서 사용할 핵심 코드는 gravity입니다. 이것에 값을 "center"를 넣게 되면 가운데로 이동한 것을 볼 수 있습니다.

 

Drawable과 Mipmap


 

Drawable

drawable에 런처아이콘을 저장해두면 안드로이드는 픽셀밀도에 따라 hdpi, xhdpi 등의 이미지 크기를 결정하여 사용합니다. 예를들어 픽셀밀도가 낮은 갤럭시s3에서는 hdpi 폴더의 이미지가 출력된다면, 픽셀밀도가 높은 갤럭시s9에서는 xxhdpi의 이미지가 출력되게 됩니다.

 

mipmap

mipmap은 이와 다르게 동작합니다. 안드로이드는 디바이스의 픽셀밀도가 아니라 출력되는 이미지의 크기에 따라서 hdpi, xhdpi, xxhdpi 등의 이미지 크기를 결정합니다.

 

 

 

구분                         drawable mipmap
목적 모든 종류의 이미지 저장 런처 아이콘 이미지 저장
선택되는 이미지 크기 디바이스 픽셀밀도에 따라 달라짐 이미지 크기에 따라 달라짐
지원버전 모든 버전 Android 2.3 Honeycomb (API 11)
사용예시 android:background="@drawable/ic_image" android:icon="@mipmap/ic_launcher"

 

반응형

댓글