티스토리 뷰
안드로이드 뷰의 크기관련하여서, onMeasure에서나, 외부에서 그려지기 전에 크기를 구할 경우에, MeasureSpec를 사용합니다.
MeasureSpec의 의미입니다.
MeasureSpec.AT_MOST : wrap_content (뷰 내부의 크기에 따라서 달라짐)
MeasureSpec.EXACTLY : match_parent (외부에서 이미 크기가 정하여져 있음)
MeasureSpec.UNSPECIFIED : MODE가 셋팅되지 않은 크기가 넘어올때 (거의 없음.)
Custom View의 onMeasure는 다음과 같이 구성하면 되며, AT_MOST일경우 원하는 크기를 지정해서 넣어주면 되겠지요.
자신이 만든 뷰의 일반적인 크기등...
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // height 진짜 크기 구하기 int heightMode = MeasureSpec.getMode(heightMeasureSpec); int heightSize = 0; switch(heightMode) { case MeasureSpec.UNSPECIFIED: // mode 가 셋팅되지 않은 크기가 넘어올때 heightSize = heightMeasureSpec; break; case MeasureSpec.AT_MOST: // wrap_content (뷰 내부의 크기에 따라 크기가 달라짐) heightSize = 20; break; case MeasureSpec.EXACTLY: // fill_parent, match_parent (외부에서 이미 크기가 지정되었음) heightSize = MeasureSpec.getSize(heightMeasureSpec); break; } // width 진짜 크기 구하기 int widthMode = MeasureSpec.getMode(widthMeasureSpec); int widthSize = 0; switch(widthMode) { case MeasureSpec.UNSPECIFIED: // mode 가 셋팅되지 않은 크기가 넘어올때 widthSize = widthMeasureSpec; break; case MeasureSpec.AT_MOST: // wrap_content (뷰 내부의 크기에 따라 크기가 달라짐) widthSize = 100; break; case MeasureSpec.EXACTLY: // fill_parent, match_parent (외부에서 이미 크기가 지정되었음) widthSize = MeasureSpec.getSize(widthMeasureSpec); break; } setMeasuredDimension(widthSize, heightSize); }
'Mobile > Android' 카테고리의 다른 글
[Android]줄간격 (0) | 2015.03.30 |
---|---|
[Android]GridLayout (0) | 2015.03.30 |
[Android]ActionBar 기초 (0) | 2015.03.27 |
[Android]레퍼런스 4.4이상 버전에서 notification battery에 percent표시 (0) | 2015.03.27 |
[Android]ViewPager에 PagerTitleStrip추가하기 (0) | 2015.03.27 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- windows10
- android
- CentOS
- Xcode
- intellij
- Gradle
- nodejs
- Windows
- SWIFT
- Spring
- tomcat
- enum
- Linux
- ios
- MySQL
- golang
- Java
- ubuntu
- Python
- go
- docker
- Kotlin
- cocoapods
- centos8
- php
- Codable
- rxswift
- war
- github
- git
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함