본문 바로가기

안드로이드

Surface 개념, LinearLayout복습(시리얼 통신)

휴대폰 화면 자체를 Window라고 부름

 

앱 아이콘을 클릭하면 뜨는 창이 뜨는데 Window는 깔려있고 그위에 Activity가 깔림. 그러면 거기서 Activity들을 이동하면서 페이지 이동

 

이 Activity는 두가지 파일로 이루어져 있다. .java파일은 로직, .xml)UI)은 그림을 그리는 파일. 이 두개는 세트!

모든 Activity끼리 데이터르 주고 받을 때 파라메터가 아니라 통신으로 해야함! 자바랑 다르지

 시리얼 통신으로 데이터 넘기는거 선하나에다가 바이트로 데이터 주고 받음

 

Window -> Activity -> Surface(하얀도화지)

 

 

다운받은 SDK에 위젯들이 있어요 위젯=view 예를 들어 버튼, textview 등등을  자바코드 라이브러리들로 만들어놨음.

객체들

 

위젯 : 이벤트가 달린 그림

view : 그냥 그림

 그래서 이 위젯을 내 꺼에 그릴라면 

 

1. extends 해서 상속해서 커스터마이징 해요.

 

2. 어느 정도 커스터마이징 할 수 있는 함수들을 public 메소드들로 open해두는 걸로 정도는 커스터마이징 가능(제한적)

하지만 이 제한을 넘어서서 커스터마이징하는 건 비추 : 사용자 경험을 위해서

 

3. meterial : 구글이 만들어 놓은 꾸러미를 다운받아서 사용. 여기서 찾아가지고 Surface에 갖다놓는게 앱만드는거임

 

사진이나 동영상 내가 찍은거는 서피스뷰에 붙히는거


android:id="@+id/button"

id는 변수명. 그래서 view코드위치 제일 위에 놔둬주기

 

 

레이아웃 vertical에 view에 weight를 주면 height는 0dp다! 이거는 규칙!  아니면 버그 생긴다.

그러면 레이아웃 horizantal에 view에 weight를 주면 width는 0dp!!

 

 

LinearLayout 복습

 

 

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <Button
        android:id="@+id/button"
        android:layout_weight="1"
        android:gravity="left"
        android:layout_width="100dp"
        android:layout_height="0dp"
        android:text="b1" />

    <Button
        android:id="@+id/button2"
        android:layout_weight="1"
        android:layout_gravity="right"
        android:gravity="right"
        android:layout_width="100dp"
        android:layout_height="0dp"
        android:text="b2" />

    <Button
        android:id="@+id/button3"
        android:layout_weight="1"
        android:layout_gravity="center"
        android:layout_width="100dp"
        android:layout_height="0dp"
        android:text="b3" />
</LinearLayout>