Android View 는 어떻게 그립 니까?
View 를 어떻게 그 리 는 지 알 기 위해 서 는 canvas(캔버스)가 무엇 인지 알 아야 합 니까?paint 가 무엇 을 할 수 있 습 니까?
I.canvas 는 캔버스 를 나타 내 는 것 입 니 다.그 위 에 당신 이 생각 하 는 것 을 그 릴 수 있 습 니 다.우리 가 onDraw 방법 을 다시 쓸 때 Canvas 대상 을 얻 을 수 있 습 니 다.이것 이 바로 당신 의 무대 입 니 다.당신 이 생각 하 는 것 을 그 릴 수 있 습 니 다.코드 올 렸 어.
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
}
어떤 컨트롤 을 다시 그 려 야 할 때,우 리 는 이 큰 무대(Canvas)에서 Canvas.DrawXXX 방법 으로 다양한 그림 을 그 려 야 합 니 다.II.paint 는 캔버스 에 자 유 롭 게 휘 두 르 는 붓 이다.그림 을 그 리 려 면 붓 을 조정 하고 붓 을 조정 한 후에 그림 을 캔버스 에 그 려 야 핸드폰 화면 에 표시 할 수 있다.Paint 에 서 는 붓 을 설정 하 는 데 많은 속성 과 방법 을 제공 합 니 다.
1.setAntiAlias:붓 의 톱날 효 과 를 설정 합 니 다.
2、setColor:화필 색 설정
3、setARGB: 화필 의 a,r,p,g 값 을 설정 합 니 다.
4、setAlpha: 알파 값 설정
5.setTextSize:글꼴 크기 를 설정 합 니 다.
6、setStyle: 붓 스타일 을 설정 하여 빈 속 이나 옹 골지 게.
7.setStroke Width:빈 테두리 폭 을 설정 합 니 다.
8、getColor: 붓 색깔 을 얻다
9、getAlpha: 붓 의 알파 값 을 얻다.
우 리 는 붓 과 캔버스 를 알 게 된 이상 짧 고 간결 한 예 를 통 해 캔버스 와 붓 이 원 하 는 도형 을 어떻게 공동으로 작용 하 는 지 알 게 되 었 다.그대로 코드:
public class MyView extends View {
private Paint paint;
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
paint=new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.RED);
paint.setStrokeWidth(5);
paint.setTextSize(28);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(measureWidth(widthMeasureSpec),
measureWidth(heightMeasureSpec));
}
public int measureWidth(int measureSpec) {
int result = 0;
int specMode = MeasureSpec.getMode(measureSpec);
int specSize = MeasureSpec.getSize(measureSpec);
if (specMode == MeasureSpec.EXACTLY) {
result = specSize;
} else {
result = 200;
if (specMode == MeasureSpec.AT_MOST) {
result = Math.min(specSize, result);
}
}
return result;
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawText(" ", 0, 80, paint);
super.onDraw(canvas);
}
}
상술 한 코드,우 리 는 이렇게 몇 가지 일 을 했다.I.우 리 는 지난 글 의 지식 을 활용 하여 onMeasure 방법 을 재 작성 하여 이 간단 한 사용자 정의 컨트롤 이 wrap 에 적응 하도록 합 니 다.content 속성.
II.우 리 는 OnDraw 방법 을 호출 하여 Canvas 와 paint 를 가 져 와 view 에'중국'문 자 를 썼 다.
최종 실행 효 과 는:
이것 이 바로 제 가 안 드 로 이 드 뷰 에 대해 어떻게 밝 은 견 해 를 그 리 는 지 에 대해 많은 조언 을 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.