코드네임 :

📱 모바일프로그래밍 - (중간) 모르는거 정리 1 (위젯) 📱 본문

백엔드/Android_JAVA

📱 모바일프로그래밍 - (중간) 모르는거 정리 1 (위젯) 📱

비엔 Vien 2024. 10. 23. 19:26

저는 채찍피티가 정말 좋네요 

 

1. View = 위젯 !!!!!!


2. 

 

 

android:layout_width="match_parent"
android:layout_height="wrap_content"

인 경우 

 

 

 

 

 

 

 

 

 

android:layout_width="wrap_content"
android:layout_height="wrap_content"

인 경우 

 

 

 

 

 

 

 

 


 

3. 패딩과 마진

 

예시

➡️ 결과


 

4. android:gravity="right|bottom" 이런 거는 오른쪽 아래 정렬


5. gravity와 layout_gravity 속성 차이 

layout_gravity와 gravity는 안드로이드에서 View의 배치와 관련된 속성이지만, 둘은 서로 다른 상황에서 사용됩니다.

1. gravity

  • 적용 대상: View(위젯)의 내부 (주로 TextView, Button 등 텍스트를 포함하는 View).
  • 역할: View 내부에서 콘텐츠(예: 텍스트)의 정렬을 지정합니다.
  • 예시: 만약 TextView의 gravity를 center로 설정하면, 텍스트가 TextView 내부의 중앙에 위치하게 됩니다.
  • 사용 가능 값: top, bottom, left, right, center, center_horizontal, center_vertical 등.
 

2. layout_gravity

  • 적용 대상: View의 부모 레이아웃 (예: LinearLayout, FrameLayout 등).
  • 역할: 부모 레이아웃 내에서 View의 위치를 정합니다.
  • 예시: 만약 LinearLayout에 Button이 있고, 그 Button의 layout_gravity를 center로 설정하면, Button은 부모 레이아웃의 중심에 배치됩니다.
  • 사용 가능 값: top, bottom, left, right, center, center_horizontal, center_vertical 등.

 

요약

  • gravity: View 내부의 콘텐츠가 배치될 위치를 결정.
  • layout_gravity: View가 부모 내에서 배치될 위치를 결정.

6. ⭐️layout_weight : 

layout_weight는 안드로이드에서 LinearLayout 내에 있는 자식 뷰들의 공간 배분을 결정하는 데 사용되는 속성입니다. 이 속성을 사용하면 자식 뷰가 부모 뷰의 남은 공간을 어떻게 나눠 가질지를 설정할 수 있습니다. layout_weight는 주로 비율에 따른 배치를 위해 사용됩니다.

layout_weight의 역할

  • LinearLayout의 방향에 따라 자식 뷰가 수직 혹은 수평으로 나열될 때, 각 자식 뷰가 얼마나 많은 공간을 차지할지를 비율로 정합니다.
  • 자식 뷰에 layout_weight가 설정되지 않으면, 해당 뷰는 기본 크기 (예: wrap_content나 match_parent)만큼의 공간을 차지합니다.
  • layout_weight를 설정하면 해당 뷰는 부모 LinearLayout의 남은 공간을 다른 자식 뷰들과 비율에 따라 나눠 가집니다.

예시

<LinearLayout
    android:orientation="vertical">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Button 1" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:text="Button 2" />

</LinearLayout>

➡️ 결과


 

7. visibility - 위젝을 보이게 할지 말지

➡️ visible, invisible, gone(얘는 숨겨지고 '자리도 차지하지 않음' 걍 없애는거임 완전 빈공간)

                    ㄴ 얘는 숨겨지지만 자리는 차지 


8. 

enabled : 위젯의 동작 여부 (true/false)

clickable : 클릭이나 터치가 가능하도록(true/false)

근데 XML 보다는 Java 코드에서 주로 사용한댄다


9. Textview : 정보 표시 용도

- text 속성 : 텍스트뷰에 나타나는 문자열 표현

- singleLine 속성 : 글이 길 경우 강제로 한줄만 표시하고 문자열 뒤에 ...표시 


10. EditText

- inputType 속성 : 에디트 텍스트에 입력할 데이터 형식 지정 (키보드의 형태의 자판 표시) 

➡️Java코드에서

EditText myEdit; // 에디트 텍스트 변수 선언

myEdit = (EditText) findViewById(R.id.edittext1); // 변수에 에디트 텍스트 위젯 대입

String myStr = myEdit.getText().toString();

               //에디트텍스트(myEdit)에 입력된 값을 문자열 형식으로 변경해 가져오기(myEdit.getText().toString())

                 // 주로 버튼 클릭 이벤트 리스너 안에 삽입


11. Checkbox - 여러개의 체크박스가 서로 독립적으로 동작

체크박스에서 체크와 언체크가 바뀌었을때 Java코드 3단계

1. CheckBox mycheck; //체크박스 변수 선언

2. mycheck = (CheckBox) findViewById(R.id.android) // 변수에 체크박스 위젯 대입

3.

        mycheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                //동작 내용을 이 부분에 코딩
            }
        });

 

12. 스위치와 토글 버튼


13. 라디오버튼과 라디오그룹

- 라디오버튼 : 여러 개 중 하나만 선택해야 하는 경우에 사용

- 라디오그룹 : 라디오버튼만 여러 개 나열하면 클릭하는 것마다 모두 중복 선택이 되므로 라디오그룹과 함께 사용


14. 이미지뷰 : 그림을 출력하는 위젯 - 그림이 필요하거나 화면을 구성할 때 사용

- src : 이미지의 경로  (이미지는 drawable 폴더에 있음 ( 접근 : @drawable/그림아이디 )

- scaleType : 이미지뷰에 사용된 이미지 크기나 비율, 위치 조정 (어디로 가는지 정도만 알아두기)