모바일/안드로이드앱

이미지뷰 이미지버튼 기본위젯 다시보기/ Android Studio / 안드로이드 앱만들기 공부 11-3

yy_dd2 2021. 2. 22. 16:12
반응형

이미지뷰와 이미지버튼

ImageView와 ImageButton은 이미지를 화면에 표시할 때 사용하는 가장 간단한 위젯

두 위젯의 차이는 버튼처럼 사용할 수 있다는 점 외에는 없음

- 윈도우 탐색기에서 이미지 파일 복사해서 넣을때 /app/src/main/res/drawable 폴더에 추가

 

ImageView의 app:srcCompat 속성

- android:src 또는 app:srcCompat 속성은 원본 이미지를 설정합니다.

 

ImageView의 maxWidth, maxHeight

- maxWidth, maxHeight 이미지가 표시되는 최대 폭, 높이 설정

- 이 설정이 없으면 원본 이미지 그대로 나타남

- 이미지의 원본이 너무 크면 이 속성으로 최대 크기를 제한할 수 있다.

 

ImageView의 tint

- 이미지뷰에 보이는 색상을 설정할 수 있습니다.

 

ImageView의 scaleType

- scaleType 속성은 이미지뷰의 크기에 맞게 원본 이미지의 크기를 자동으로 늘리거나 줄여서 보여줄 ㅅ때 사용

- 이때 원본 이미지를 무조건 늘리거나 줄이는 것이 아니라 원하는 형태로 확대하거나 축호할 수 있다.

- scaleType 속성에는 fitXY, sentercrop, centerInside 등의 미리 정의된 값을 사용할 수 있다.

 

** drawable 폴더 제대로 사용하기

화면의 해상도에 따라 서로 다른 크기의 이미지를 로딩할 수 있습니다.

/app/res/drawable 폴더에 이미지를 그냥 넣으면 일반적으로 사용되는 이미지

/app/res/drawable-hdpi 에 넣으면 고해상도

/app/res/drawable-mdpi에 넣으면 중간 해상도

이 외에 초고해상도 -xhdpi -xxhdpi -xxxhdpi 와 저해상도 -ldpi 등이 있다

 

layout 폴더에 image.xml 생성 코드작성

LinearLayout으로 설정

drawable에 이미지 추가 (예제폴더에 있는거 추가함 part2에 있음)

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


    <ImageButton
        android:id="@+id/imageButton"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginTop="40dp"
        android:layout_marginLeft="40dp"
        app:srcCompat="@drawable/ok_btn"
        android:contentDescription="ok button"
        />
	<!-- 
    이미지 버튼은 일반적인 버튼과 다르게 눌린 상태와 눌리지 않은 상태가 표시되지 않는다고한다
    이 문제는 selector를 만들어서 사용해야 함
    ???? 책에서는 이 문제를 뒤에서 설명한다고한다 대체 어디페이지에서 설명하는지 안써져있음;
    -->
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginTop="160dp"
        android:layout_marginLeft="160dp"
        app:srcCompat="@drawable/person"
        android:contentDescription="person button"
        />
</LinearLayout>

 

이미지 버튼은 일반적인 버튼과 다르게 

눌린 상태와 눌리지 않은 상태가 표시되지 않는다고한다
이 문제는 selector를 만들어서 사용해야 함

 

 

반응형