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 |