본문 바로가기
Developer/Android, Java

[안드로이드] ConstraintLayout, Guideline을 이용하여 삽입 개체 크기 비율 조절

by Doony 2019. 3. 19.

이번 포스팅에서는 안드로이드에서 특정 개체의 크기를, 현재 보고 있는 액티비티 화면의 비율로 조절하는 방법에 대해 알아본다. 스마트폰마다 화면 비율이 다르기 때문에, 특정 픽셀값의 절대치로 개체의 크기를 지정할 경우 보는 사람마다 크기가 달라보인다는 한계점이 있다. 

보고있는 화면의 특정 비율, 예를 들어 화면 절반(50%) 만큼만 개체를 띄우고 싶을 경우에 아래와 같은 방법을 사용하면 된다.

1
2
3
4
5
6
7
8
9
10
11
<android.support.constraint.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <android.support.constraint.Guideline
        android:id="@+id/guideline"
        android:layout_width="wrap_content"
        android:layout_height="1dp"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.5" />
</android.support.constraint.ConstraintLayout>
cs


보다시피, match_parent로 ConstraintLayout 를 전체 화면으로 지정해준 후, 그 안에 원하는 비율만큼의 Guideline을 넣는다. (현재 0.5 = 50%)

그 후, 가이드라인에 맞춰서 원하는 개체의 Constraint 구속을 맞춰주면 원하는 비율만큼 개체의 크기를 조절할 수 있다.


예를 들어, 아래와 같이 ImageView를 구속하면, 화면의 특정 비율만큼만 뷰의 크기를 지정할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<android.support.constraint.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <android.support.constraint.Guideline
        android:id="@+id/guideline"
        android:layout_width="wrap_content"
        android:layout_height="1dp"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.5" />
 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_constraintBottom_toTopOf="@+id/guideline"
        app:layout_constraintTop_toTopOf="parent">
 
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="fitXY"
            android:src="@drawable/myimage" />
 
    </LinearLayout>
 
 
</android.support.constraint.ConstraintLayout>
cs



댓글