이미지뷰를 화면에 꽉 채우기에 앞서 뷰의 영역에 대해 먼저 설명하겠습니다.



그림이 다소 난잡하지만, 하나의 뷰는 크게 세 가지 영역으로 볼 수 있습니다.

뷰가 실제로 보이는 크기와는 상관이 없지만 다른 뷰와의 거리를 조절하는 외부 여백 margin

눈에 보이는 크기에 포함되는 내부 여백 padding,

전체 뷰 크기에서 위의 두 여백을 제외하고 내용이 들어가는 부분으로 나뉘어집니다.


margin과 padding은 둘다 여백이지만 뷰에 배경색상을 지정했을 때 margin 영역에는

배경색상이 지정되지 않고 공간만을 차지하고, padding 부분에는 배경색상이 적용됩니다.


왜 이 이야길 꺼냈느냐 하면, 액티비티에 이미지뷰를 삽입하려면 이미지뷰를 둘러싸고 있는 레이아웃이

padding의 값이 0이 아닌 경우가 있기 때문에 이미지뷰를 아무리 키운다고 한들 여백이 생기기 때문입니다.


IDE (Eclipse나 IntelliJ 기반의 Android Studio)에서 새로운 레이아웃 XML을 자동으로 생성하면

기본 레이아웃은 RelativeLayout이고 요런 속성이 주렁주렁 달려서 자동으로 xml 문서가 생성됩니다.

android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"


저렇게 자동으로 생성된 xml 레이아웃 파일의 경우 저 부분을 제거해주어야 원하는 대로 화면에 꽉 찬 이미지뷰를 만들 수 있습니다.



여백에 관한 얘기는 여기까지 하고, 이미지뷰에서 이미지를 채우기 관련 속성인 scaleType에 대해 알아보겠습니다.

scaleType 속성이 가질 수 있는 값은



위의 그림과 같이 matrix, fitXY, fitStart, fitCenter, fitEnd, center, centerCrop, centerInside 여덟가지입니다.


위 속성에 관해 녹두장군님의 포스트(http://mainia.tistory.com/473)에서 설명이 잘 되어있어 링크로 대체하도록 하고, 화면에 이미지를 맞추기 위해서는 scaleType의 값으로 fitXY를 사용하면됩니다.


위의 내용대로 한다면 xml의 내용은 아래와 같이 나오게됩니다.


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".IntroActivity" >

    <ImageView 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/salina_community_intro"
        android:scaleType="fitXY"/>

</LinearLayout>


추가적으로 Manifest에서 Activity의 theme 속성 수정을 통해서 타이틀바의 유무, 상태표시바 유무(풀스크린)를 수정할 수 있습니다. 어찌보면 별 내용도 없는 것을 횡설수설 괜히 길게 썼네요. 도움이 되셨길 바랍니다~!  :)

+ Recent posts