이미지뷰 이미지버튼 기본위젯 다시보기/ Android Studio / 안드로이드 앱만들기 공부 11-3
이미지뷰와 이미지버튼
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를 만들어서 사용해야 함