ββλ μ΄μμμ κ°λ ββ
λ²νΌ, ν μ€νΈ λ·°, μλνΈν μ€νΈ λ± μλλ‘μ΄λμμ μ¬μ©νλ μμ ―μ λ μ΄μμμ΄λΌλ ν μμ μ‘΄μ¬ν΄μΌ νλ€. λ μ΄μμμ μμ ―μ λ°°μΉνμ¬ μλλ‘μ΄λ νλ©΄μ λͺ©μ μ λ§κ² λ°°μ΄ν μ μκ² νλ€.
λ μ΄μμμ ViewGroup ν΄λμ€λ‘λΆν° μμλ°μΌλ©° λ΄λΆμ 무μμ λ΄λ μ©λλ‘ μ°μΈλ€. μ¦ λ μ΄μμ μμ μ‘΄μ¬νλ μμ ―μ λ°°μΉνκ² ν΄μ€λ€. λ μ΄μμ μ€μμ κ°μ₯ λ§μ΄ μ¬μ©λλ κ²μ 리λμ΄ λ μ΄μμμ΄λ©°, μ ν λ μ΄μμμ΄λΌ νλ€.
λ μ΄μμμλ λνμ μΈ μμ±μ΄ μλ€. λ μ΄μμλ λ·° ν΄λμ€μ νμ ν΄λμ€μ΄λ―λ‘ λ·° ν΄λμ€μ XMLμμ±κ³Ό λ©μλλ₯Ό λͺ¨λ μ¬μ©ν μ μλ€.
ββλ μ΄μμμ μμ±ββ
orientation: λ μ΄μμ μμ λ°°μΉν μμ ―μ μμ§ λλ μν λ°©ν₯μ μ€μ νλ€.
gravity : λ μ΄μμ μμ λ°°μΉν μμ ―μ μ λ ¬ λ°©ν₯μ μ’μΈ‘, μ°μΈ‘, μ€μλ±μΌλ‘ μ€μ νλ€.
padding : λ μ΄μμ μμ λ°°μΉν μμ ―μ μ¬λ°±μ μ€μ νλ€.
layout_weight : λ μ΄μμμ΄ μ 체 νλ©΄μμ μ°¨μ§νλ 곡κ°μ κ°μ€κ°μ μ€μ νλλ°, μ¬λ¬ κ°μ λ μ΄μμμ΄ μ€λ³΅λ λ μ¬μ©νλ€.
baselineAligned : λ μ΄μμ μμ λ°°μΉν μμ ―μ 보기 μ’κ² μ λ ¬νλ€.
ββλ μ΄μμμ μ’ λ₯ββ
1. 리λμ΄ λ μ΄μμ(μ ν λ μ΄μμ)
λ μ΄μμμ μΌμͺ½ μλΆν° μλμͺ½(μ€λ¦¬μν μ΄μ μ vertical) λλ μ€λ₯Έμͺ½μΌλ‘(μ€λ¦¬μν μ΄μ μ horizontal) μ°¨λ‘λλ‘ λ°°μΉνλ€.
2. λ λ¬ν°λΈλ μ΄μμ(μλ λ μ΄μμ)
μμ ― μμ μ΄ μν λ μ΄μμμ μνμ’μ° μμΉλ₯Ό μ§μ νμ¬ λ°°μΉνκ±°λ λ€λ₯Έ μμ ―μΌλ‘λΆν° μλμ μΈ μμ§λ₯Ό μ§μ νλ€.
3. ν μ΄λΈ λ μ΄μμ
νκ³Ό μ΄μ κ°μλ₯Ό μ§μ ν ν μ΄λΈ ννλ‘ μμ ―μ λ°°μ΄νλ€.
4. 그리λλ μ΄μμ
ν μ΄λΈλ μ΄μμκ³Ό λΉμ·νμ§λ§ ν λλ μ΄μ νμ νμ¬ λ€μνκ² λ°°μΉν λ λ νΈλ¦¬νλ€.
5. νλ μλ μ΄μμ
μμ ―μ μΌμͺ½ μμ μΌλ₯ μ μΌλ‘ κ²Ήμ³μ λ°°μΉνμ¬ μ€λ³΅λμ΄ λ³΄μ΄λ ν¨κ³Όλ₯Ό λΌ μ μλ€. μ¬λ¬ κ°μ μμ ―μ λ°°μΉν ν μν©μ λ°λΌμ νμν μμ ―μ 보μ΄λ λ°©μμ μ£Όλ‘ νμ©λλ€.
ββJava μ½λλ‘ νλ©΄ λ§λ€κΈ°ββ
μ§κΈκΉμ§ μμ±ν νλ‘μ νΈλ κΈ°λ³Έμ μΌλ‘ activity_main.xmlμμ νλ©΄μ ꡬμ±ν ν Java νμΌ (MainActivity.java)μ setContentView() λ©μλλ‘ νλ©΄μ μΆλ ₯νλ€. λ©μΈ Javaμ½λμ setContentView() λ©μλλ xmlνμΌμ νλ©΄μ μΆλ ₯νλ κΈ°λ₯μ νλ€. μ¬κΈ°μ R.layout.activity_mainμ λ°λ‘ activity_main.xml νμΌμ μλ―Ένλ―λ‘, μ½λ©ν activity_main.xml νμΌμ΄ νλ©΄μ μΆλ ₯λλ κ²μ΄λ€.
νμ§λ§ XMLνμΌμ μ¬μ©νμ§ μκ³ Javaμ½λλ§μΌλ‘ νλ©΄μ ꡬμ±νλ λ°©λ² λν μλ€. μμ£Όμ°μ§ μκ³ λ³΅μ‘νμ§λ§ νλ©΄μ μ§μ ꡬμ±ν΄μΌν λ μ μ©ν μ μλ€.
λ²νΌμ ν΄λ¦νλ©΄ ν μ€νΈλ©μμ§κ° μΆλ ₯λλ νλ©΄μ Javaλ‘λ§ μ½λ©νκΈ°
MainActivity.javaμμ Javaλ‘λ§ μ½λ©ν κ²μ΄κΈ°μ activity_main.xml νμΌμ Delete ν΄μ€λ€. activity_main.xmlμ μμ νμΌλ―λ‘ xmlνμΌμ νλ©΄μ μΆλ ₯νλ κΈ°λ₯μ νλ setContentView() λ©μλμ μλ¬κ° λ°μνλ€.
μ΄λ₯Ό μ£Όμμ²λ¦¬ ν λ€ μ½λ©ν΄μ€λ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
LinearLayout baseLayout = new LinearLayout(this);
baseLayout.setOrientation(LinearLayout.VERTICAL);
baseLayout.setBackgroundColor(Color.rgb(0,255,0));
setContentView(baseLayout, params);
}
}
|
cs |
8 ~ 10ν : LinearLayoutParams λ³μλ₯Ό μ μΈνλ€. μμ±μμμ νλΌλ―Έν°λ layout_width, layout_height μ€ 2κ°λ₯Ό μ§μ ν μ μλ€. λ€μ XMLμ½λμ λμΌνλ€.
android:layout_width = "match_parent"
android:layout_height = "match_parent"
9 ν : 리λμ΄λ μ΄μμ λ³μλ₯Ό μ μΈνλ€. λ€μ XMLμ½λμ λμΌνλ€.
<LinearLayout> </LinearLayout>
10 ν : 리λμ΄λ μ΄μμμ orientation μμ±μ μ§μ νλ€. λ€μ XMLμ½λμ λμΌνλ€.
android:orientation="vertical"
11 ν : λ μ΄μμμ μμμ μ§μ νλ€. μμμ μ§μ νκΈ° μν΄μ Color.rgb() μ μ λ©μλλ₯Ό μ¬μ©νμλλ°, νλΌλ―Έν°λ‘ (red, green, blue)λ₯Ό μ λ¬νλ€. κ° μμμμ 16μ§μ 0~FFλ₯Ό μ¬μ©ν μ μμΌλ―λ‘ 10μ§μ 0~255λ₯Ό μ¬μ©νλ©΄ λλ€. λ€μ XMLμ½λμ λμΌνλ€.
android:background="#00FF00"
12 ν : μ€λΉλ 리λμ΄ λ μ΄μμ λ³μλ₯Ό νλ©΄μ μΆλ ₯νλ€. νλΌλ―Έν°λ‘ λ μ΄μμ ν΄λμ€μ λ μ΄μμμ μ¬μ©νλ€. activity_main.xml νμΌμ μ¬μ©ν μ½λμ 6νκ³Ό κ°μ μν μ νλ€.
μ€νκ²°κ³Ό:
ν΄λΉ 리λμ΄λ μ΄μμμ λ²νΌμ λ§λ€κ³ , λ²νΌμ ν΄λ¦νμ λμ ν μ€νΈ λ©μμ§λ₯Ό μμ±νκΈ°
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
28
29
30
|
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
LinearLayout baseLayout = new LinearLayout(this);
baseLayout.setOrientation(LinearLayout.VERTICAL);
baseLayout.setBackgroundColor(Color.rgb(0,255,0));
setContentView(baseLayout, params);
Button btn = new Button(this);
btn.setText("λ²νΌμ
λλ€.");
btn.setBackgroundColor(Color.MAGENTA);
baseLayout.addView(btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(),
"μ½λλ‘ μμ±ν λ²νΌμ
λλ€.", Toast.LENGTH_SHORT).show();
}
});
}
}
|
cs |
17 ν : λ²νΌ λ³μλ₯Ό μμ±νκΈ°
18 ν : λ²νΌμ κΈμλ₯Ό μ€μ νκΈ°
19 ν : λ²νΌμ μμμ μ§μ νκΈ°. μμμ μ§μ νλ λ€λ₯Έ λ°©μμΌλ‘ Color ν΄λμ€μ μμλ‘ μ§μ λ colorλ₯Ό μ¬μ©νμλ€.(MAGENTA)
20 ν : μ€λΉλ λ²νΌμ λ μ΄μμμ μΆλ ₯νλ€. baseLayoutμ μμ μμ±ν 리λμ΄ λ μ΄μμμ΄λ€. νμνλ€λ©΄ addView() λ©μλμ μμ ― λ³μμ λ μ΄μμ νλΌλ―Έν°λ₯Ό λκΈΈ μλ μλ€. μ§κΈμ μμ ― λ³μλ§ λκΈ°κ³ λ μ΄μμμ μλ΅νλλ°, μ΄λ΄ κ²½μ° λν΄νΈλ‘ layout_widthλ match_parentκ° λκ³ layout_heightλ wrap_contentκ° λλ€.
1 ~ 4 νμ XMLμ½λλ‘ νν νμλ©΄ λ€μκ³Ό κ°λ€.
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FF00FF"
android:text="λ²νΌμ
λλ€."/>
22 ~ 30 ν : λ²νΌμ ν΄λ¦νμ λ 리μ€λλ₯Ό μ½λ©νκΈ°
μ€νκ²°κ³Ό :
λκΈ