본문 바로가기

Android

[4일차]xml로 속성정의하기

inflater는 xml에 있는 설계도를 가지고 만들어 주는 역할을 한다. 


xml에 있는 속성들은 생성자의 atributeset아규먼트를 가진 생성자를 호출해준다. 



내 이미지가 눌리면 외부 코드 실행.

이게 Observer 패턴


이렇게 하려면


 - interface를 정의. callback 정하기 위해 callback함수를 감싸고 있는 객체가 필요하기 때문에 interface를 만든다. 

 - 그냥 알려주는 함수를 정의하고 싶은거다. 

 - interface를 가지고 있는 객체를 만들어야 부를 수 있다. 별도로 만들어도되고,뭐 

 - 그 객체를 메인액티비티에 등록하고 

 - 그걸 가지고 PersonView에 그 함수를 호출 하면 끝나는거다. 




내가 만든 위젯의 속성정의하기 


만드는법

 value에 attrs.xml만든다. 

attr name="myphto" fomat= color, reference 이런식으로 정의하면 된다. 

이렇게 정의 한 attr은  ??


PersonView에 쓸건데 

declare - stylabe name personview

attr name myname format string 이렇게 정의 해도 된다. 

attrage myage format integer

attr name myphoto 


이 안에서 한번 정의된 속성은 이름만 쓴다. 


레이아웃에 appNs속성을 추가해서 

app:myname = ""

app:myage

app:myphoto


뭘하는 지 모르겠네 setDrawable xml로 속성정의 해서 사용하겠다는말인거같은데 


속성을 사용하는 방법은 attr이라는 거슬 만드고 obtatin stayle attrubute.대략 이런게 있다 정도로



xml에 merge 라는 속성을 사용하면 view 하나를 날릴수 있다는 것은 곧 성능을 개선한다는 뜻이다. 

근데 일반적으로 어떻게 될 지 모르므로 마지막에 머지를 붙인다. 

지금 merge는 해봐야 한다. 


'Android' 카테고리의 다른 글

[4일차]BaseAdapter 실습  (0) 2016.07.13
[4일차]ListView - AdapterView,MultipleAdapter  (0) 2016.07.13
[4일차] 컴파운드위젯,inflater  (0) 2016.07.13
[3일차] 프로그래스,시크,레이팅,데이트  (0) 2016.07.12
[3일차]이미지  (0) 2016.07.12