2012년 9월 24일 월요일

안드로이드 이미지뷰 속성 정리~


11. 안드로이드(Android) 이미지뷰(ImageView)를 띄워보자!!



자 오늘도 실습에 앞서 잠깐 설명을 하고 실습을 하자 !!
이미지뷰는 말그대로 이미지를 띄우는 뷰이다. 아이콘이나 비트맵등 이미지를 출력하는 위젯을 말한다.
크기나 색조또한 조절 할수있다. 그럼 속성을 살펴보자

 속성
설명 
 src
출력할 이미지를 지정하는 가장 중요한 속성이다.
이 값에 아무것도 없다면 아무 것도 출력 안된다.
#rrggbb로 색상값을 출력할 수도 있고 외부 이미지를 출력 할 수도 있다. 
 maxHeight,maxWidth
 이름에서 풍기듯이 이미지의 최대 크기를 지정한다.
별다른 지정이 없다면 원래크기대로 출력되지만
제공되는 기기들의 해상도가 다르기때문에 적당히 제한할 필요는 있다.
 adjustViewBounds
 이미지의 종횡비를 맞추기 위해 이미지 뷰의 크기를 적당히 조정할 것인가를 지정한다 true나 false
 cropToPadding
 ture일 경우 위젯의 주어진 여백에 맞추기위해 이미지의 일부를 잘라낸다
 tint
 이미지에 색조를 입힌다. #aarrggbb형식으로 색상을 지정한다.
 scaleType
 이미지의 원래 크기와 다르게 출력할 때 적용할 확대, 축소 방식을 지정한다. matrix,fitXY,center,centerCrop,centerInside 등 여러가지가 있다.

자 그럼 간단한  실습을 통해 이미지를 띄워보자
일단 프로젝트 생성 ㄱㄱ


자 그리고 패키지에서 res 폴더를 보자 각종 리소스들을 보관하는 폴더다
그중에서 drawable-hdpi  drawable-ldpi  drawable-mdpi  3가지가있는데
순서대로 고해상도, 저해상도, 중해상도를 의미한다.


그리고 자신이 뿌릴 이지를 3중에 아무데나 드래그를 하던 복사 붙여넣기를하던지해서 넣어보자
기본적으로 안드로이드는 jpg, png, gif 등을 지원하지만 gif는 품질이 떨어직고 라이센스 문제도 있다.
jpg가 일반적이지만 png를 추천한다. png는 알파 채널이 있어 반투명을 지원한다.
어쨋든 밀도에 따라 3개가 있지만 무난하게 mdpi에 넣자  일단 2개만 넣어보자


자 그리고 xml 파일을 열어서 이미지뷰 2개를 만들어보자



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <ImageView android:src="@drawable/sample"
  android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
 <ImageView android:src="@drawable/sample"
  android:layout_width="wrap_content" android:layout_height="wrap_content"
  android:maxWidth="150px" android:maxHeight="100px"
  android:adjustViewBounds="true"></ImageView>
 <ImageView android:src="@drawable/sample2"
  android:layout_width="wrap_content" android:layout_height="wrap_content"
  android:tint="#80ff0000"></ImageView>
</LinearLayout>
코드는 이렇게 된다

위에 이미지뷰는 그냥 사이즈로 출력을 한거고
중간 이미지뷰는 adjustViewBounds를 적용했다.
마지막 이미지뷰는 tint를 사용해 빨강색을 입혔다.

실행을 하면 이렇게나온다 ~~ 그림 샘플파일들은 첨부해둘테니 필요한사람만 다운받자~


다음시간에는 버튼과 에디트를 살펴보자 !!

댓글 없음:

댓글 쓰기