Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

Android에서 코드로 ImageView 마진(여백) 설정하는 방법 완벽 가이드

이 튜토리얼에서는 Android 앱에서 Java 코드를 사용해 ImageView의 마진(여백)을 설정하는 방법을 단계별로 알아봅니다. XML 레이아웃이 아닌 프로그래밍 방식으로 여백을 조절하면, 런타임 상황에 따라 UI를 동적으로 변경할 수 있다는 큰 장점이 있습니다.

1단계 — 새 프로젝트 생성

Android Studio를 실행하고 File ⇒ New Project 메뉴로 이동한 뒤, 새 프로젝트 생성에 필요한 정보를 모두 입력하여 프로젝트를 만듭니다.

2단계 — 레이아웃 파일 작성

res/layout/activity_main.xml 파일에 아래 코드를 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/image"/>

</RelativeLayout>

3단계 — 이미지 리소스 추가

사용할 이미지 파일을 복사하여 res/drawable 폴더에 붙여넣습니다.

4단계 — MainActivity 코드 작성

src/MainActivity.java에 다음 코드를 추가합니다. 핵심 로직은 getLayoutParams()로 현재 레이아웃 파라미터를 가져온 후, setMargins(left, top, right, bottom)으로 여백을 지정하고 다시 뷰에 적용하는 것입니다.

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.RelativeLayout;

public class MainActivity extends AppCompatActivity {

    ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView = findViewById(R.id.imageView);
        final RelativeLayout.LayoutParams layoutparams = (RelativeLayout.LayoutParams)imageView.getLayoutParams();
        layoutparams.setMargins(100,100,100,100);
        imageView.setLayoutParams(layoutparams);
    }
}

5단계 — AndroidManifest.xml 작성

androidManifest.xml에 아래 코드를 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

앱 실행 및 결과 확인

이제 애플리케이션을 실행해 보겠습니다. 실제 Android 기기가 컴퓨터에 연결되어 있다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤 툴바의 Run 아이콘을 클릭하세요. 목록에서 모바일 기기를 선택하면, 기기 화면에 아래와 같이 네 방향으로 100px 여백이 적용된 ImageView가 표시됩니다.

Android에서 코드로 ImageView 마진(여백) 설정하는 방법 완벽 가이드

참고 사항

예제 코드의 android.support.v7.app.AppCompatActivity는 구버전 Support Library 클래스로 현재 지원이 종료(deprecated)되었습니다. 최신 프로젝트라면 AndroidX의 androidx.appcompat.app.AppCompatActivity를 사용하는 것이 좋습니다. 또한 setMargins()의 값은 픽셀(px) 단위로 적용되므로, 다양한 화면 밀도를 고려하려면 TypedValue.applyDimension() 등을 활용해 dp 단위로 변환하는 것이 바람직합니다.