Minimum SDK: 최소 지원 버전 (↔ Minimum Deployments)
Activity: 화면 하나를 담당하는 단위 (↔ ViewController)
layout.xml: UI 구조를 정의하는 파일 (↔ Storyboard, XIB)
Gradle: 라이브러리 의존성, 빌드 설정 전체 관리 (↔ CocoaPods, Swift Package Manager)
AndroidManifest.xml: 앱 정보 설정 (↔ Info.plist)
Linear Layout (↔ StackView)
: 뷰들을 가로 혹은 세로 방향으로 일렬로 배치한다.
Relative Layout
: 뷰들 사이의 상대적인 관계를 정의하여 위치를 지정한다.
Constraint Layout (↔ Auto Layout)
: 뷰 사이에 제약을 걸어 위치를 지정한다.
<!-- 너비, 높이 -->
<!-- match_parent: 부모 길이에 맞춰서 / wrap_content: 콘텐트 크기에 맞춰서 -->
android:layout_width="120dp"
android:layout_height="120dp"
<!-- margin: 바깥쪽 여백, 크기 변화X <-> layoutMargins -->
<!-- padding: 안쪽 여백, 크기 변화O <-> contentEdgeInsets -->
android:layout_margin="20dp"
android:padding="20dp"
<!-- id 설정 -->
android:id="@+id/imageView1"
<!-- 배경색 -->
android:background="#ffffff"
<!-- TextView -->
<TextView
android:text="텍스트"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="#000000"
android:gravity="center" />
<!-- ImageView -->
<ImageView
android:src="@drawable/이미지명"
android:scaleType="centerCrop" />
<!-- 폰트 추가 및 설정하기 -->
<!-- 전제: ttf 파일을 res/font 폴더에 추가하기 -->
android:fontFamily = "@font/파일명"
<!-- EditText <-> UITextField -->
<EditText
android:id="@+id/emailArea"
android:hint="Email"
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
//id로 객체 가져오기
val image1 = findViewById<ImageView>(R.id.imageView1)
//클릭 리스너 등록하기
image1.setOnClickListener {
//클릭되었을 때 동작
}
//화면 전환하기
val intent = Intent(this, 액티비티이름::class.java)
startActivity(intent)
//데이터 전달하기
intent.putExtra(name: "data", value: "2")
val getData = intent.getStringExtra("data")
//ImageView에 image 설정하기
imageView.setImageResource(R.drawable.파일명)