Android 학습 노트 (1) View, View Group 의 측정 그리 기
4128 단어 android
큰 것 부터 작은 것 까지 바깥쪽 에 Activity > > Phone Window > > DecorView > > TitleView + ContentView 를 포함 하고 있 습 니 다.
그 중
실현 과정,
Created with Rapha ë l 2.1.0 Activity Activity Manager Service Activity Manager Service onCreate () 방법 에서 setContentView () 방법 을 호출 하여 DecorView 를 Phone Window 에 추가 하고 화면 리 셋 onResume () 방법 을 그립 니 다.
뷰 의 측정
측정 모드
예 를 들다
다시 쓰기 onMeasure ()
@Override
protected void onMeasure(int widthMeasureSpec,int heightMeasureSpec)
{
//super.onMeasure(widthMeasureSpec,heightMeasureSpec);
// measureWidth() measureHeight()
setMeasuredDimension(measureWidth(widthMeasureSpec),measureHeight(heightMeasureSpec));
}
사용자 정의 방법 measureWidth () 를 예 로 들 면 measureHeight () 의 실현 과 차이 가 많 지 않 습 니 다. 여기에 쓰 지 않 겠 습 니 다.
private int measureWidth(int measureSpec)
{
int result=0;
// : MeasureSpec
int specMode=MeasureSpec.getMode(measureSpec);
int specSize=MeasureSpec.getSize(measureSpec);
//
if(specMode==MeasureSpec.EXACTLY)
{
result=specSize;
}
else
{
result=200;// wrap_content
if(specMode==MeasureSpec.AT_MOST)
{// ,
result=Math.min(result,specSize);
}
}
return result;
}
onMeasure () 방법 을 다시 쓰 는 목적 은 View 에 wrapcontent 속성 에서 기본 크기, 지정 한 wrapcontent 속성 을 사용 할 때 View 는 부모 레이아웃 을 채 우 는 것 이 아니 라 기본 값 200 px 를 얻 었 습 니 다.
보기 의 그리 기
View 를 측정 한 후, 간단하게 onDraw () 방법 으로 View 를 그 릴 수 있 습 니 다. 캔버스 류 Canvas 를 사용 해 야 합 니 다.View 를 그 리 는 데 는 두 가지 방법 이 있 습 니 다. - onDraw () 를 다시 쓰 는 방법, 매개 변수 Canvas canvas 대상 을 전달 하 는 방법, 이 를 사용 하여 그림 을 그립 니 다. -다른 곳 에 서 는 일반적으로 Canvas 대상 을 실례 적 으로 만들어 야 합 니 다. 코드 는 다음 과 같 습 니 다.
Canvas canvas=new Canvas(bitmap);// ,bitmap
ViewGroup 의 측정
ViewGroup 은 하위 View 의 디 스 플레이 크기 를 관리 합 니 다.측정: ViewGroup 의 크기 는 wrapcontent (즉 AT MOST) 를 사용 할 때 ViewGroup 은 하위 View 를 옮 겨 다 니 며 모든 하위 View 의 크기 를 가 져 옵 니 다 (하위 View 의 Measure 방법 으로 측정 결 과 를 가 져 옵 니 다).다른 모드 에 서 는 구체 적 인 지정 값 을 통 해 크기 를 설정 합 니 다.Layout 프로 세 스: 측정 후 하위 View 를 적당 한 위치 에 두 어야 합 니 다.하위 View 의 Layout 방법 을 옮 겨 다 니 며 구체 적 으로 표 시 된 위 치 를 정 하여 레이아웃 위 치 를 구체 적 으로 결정 합 니 다 (onLayout () 를 다시 써 서 하위 View 의 디 스 플레이 위 치 를 제어 할 수 있 는 논리 입 니 다. wrap content 속성 을 지원 하려 면 onMeasure () 를 다시 써 야 합 니 다.
ViewGroup 의 그리 기
ViewGroup 은 보통 그리 지 않 아 도 됩 니 다.배경 색 을 지정 하면 onDraw 방법 이 호출 됩 니 다.ViewGroup 은 dispatchDraw 방법 (하위 View 를 호출 하 는 onDraw 방법) 을 통 해 하위 View 를 그 릴 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.