본문 바로가기

Android

[3일차]레이아웃과 버튼들

리니어레이아웃 그리드 레이아웃 했다. 


 프레임 레이아웃


오로지 부모의 위치로만 구성할 때,


이런애들은 gravity하고 margin만 가진다. 


 뷰가 겹칠때, 5.0미만 kitkat까지는 먼저배치된애가 밑으로 간다. 


gone 과 visible은 많이 쓴다. 


elvation이 낮으면 큰게 위로간다. 



프레임 레이아웃을 주로 쓰이는 것은 겹쳐보이는 화면을 배치 할 때 이다. 

프레임 레이아웃은 사실 리레이티브레이아웃으로 만들수 있지만 느리다. 


그래서 프레임 레이아웃을 쓴다. 



스크롤뷰

윈도우에 크기에 따라 뷰의 크기도 제약을 받는다. 
리니어,리레이티브,프레임레이아웃은 스크롤 기능을 제공하지 않는다. 

그래서 스크롤 뷰를 쓴다. 
가로는 parent를 벗어나지 않지만 height는 만든다. 
스크롤 뷰 안에 child는 알아서 wrap_content로 바꿔준다. 

레이아웃안에 스크롤 뷰라... 스크롤 뷰안에 레이아웃인가 ?...

nestedscrolliview 라는 라이브러리가 있는데 

롤리팝부터는 materialDisign이라는 곳에서 나온건데

nestedsroll은 스크롤 될때 parent에게 알려준다. 
그래서 parellel 레이아웃 같은게 가능한거다 .
5.0이상에서 부터 된다. 

그래서 하위버전을 커버하려고 리사이클러 뷰를 쓴다. 

기본 위젯

radio check textview button  - text를 content로 갖는 애들.

imageview,imagebutton,  - drawable(이미지)를 content로 갖는 애들.


prograssbar,ratingbar,  - 진행(progressbar)을 content로 갖는애들


datepicker,timepicker근데 잘안쓰고 버그가 많아 오픈소스를 많이 쓴다. - 날짜,시간을 content로 갖는애들


list,스피너,  - selection 위젯이라 한다.itemdata를 여러개 갖는 애들


textview

text를 화면에 출력하는 view


text의 속성이 먼가?

text설정 기능.

textcolor 색

textsize 크기

typeFace폰트체 주로 쓰는 4가지를 뽑아놓음 sans,serif,monopace네가지 이름의 typeFace라고 한다. 

singleLine text가 무조건 한줄로 표현 여전히 많이 쓴다. 

eiilisize 글자가 길 경우 점점점 마키라고도 한다. 마키라고 지정한 뷰의 selected 가 true 이어야지만 마키 동작한다. 



Button

버튼 배치
토스트 띄우기

버튼에 눌렸을때 이미지를 바꾸는걸 실습한다. 

이 때, 이미지의 네이밍은 소문자, 언더바 , 숫자이다. 그리고 단말기 해상도에 따라 xhdpi , xxhdpi 로 이미지를 두면 해상도에따라 이미지를 density로 스케일 다운하거나 업해서 표현이된다. 



포인트는 selector.xml을 만들었을때, pressed 즉 디테일한 조건이들어가는 걸 위로 올려야 한다. 


그것은 if 문이 실행 되기 때문에 위로 올려야 한다. 

이것이 성공했으면 text를 바꾸는 colorselector 를 만든다. 

리소스 폴더를 만들때, 리소스타입을 color로 선택해야한다. 

뷰에서 onclick속성으로 버튼클릭 메소드를 등록해서 쓸수도 있다. 이게 참 좋은데 액티비티에서 밖에 안된다. 

나중에 뷰나 프래그먼트에서 라이브러리로 쓰는 방법을 배운다.. 


checked 버튼을 실습한다. 

체크 이미지를 버튼에 씌운다. 
온 체크드 리스너를 이용한다. 
boolean checked = checkView.isChecked();
checkView.setChecked(!Check);

이때 값을 바꾸는 이슈가 생기는데  boolean force라는 걸 만들어서 강제적으로 버튼으로 변경하고 자 할때는 리스너를 안타도독 처리해야한다 혼자 해결해 보자 

radio 버튼을 실습한다. 

radio버튼은 익스클루시브한 실행을 위해서  radio그룹(리니어 레이아웃을 상속한다.)을 설정해야한다. 


displayradio를 스위치 함수로 만들어서 id 값을 가져와서 실행한다. 



Toggle버튼

api14이상 부터니까 써도된다. 


'Android' 카테고리의 다른 글

[3일차]이미지  (0) 2016.07.12
[3일차]EditText  (0) 2016.07.12
[2일차]기본 위젯과 레이아웃  (0) 2016.07.11
[2일차]configuration  (0) 2016.07.11
[2일차]안드로이드 Tip  (0) 2016.07.11