Android 에서 Canvas 의 일반적인 방법 요약
Canvas 에 대한 일련의 조작 은 Canvas 에 대해 회전,이동,크기 조정 등 을 하 는 것 을 말한다.
이 조작 들 은 Canvas 대상 을 더욱 편리 하 게 사용 할 수 있다.
2.Canvas 이동
/**
* (100,50)
*
* 1: X 100
* 2: Y 50
*/
canvas.translate(100, 50);
3.Canvas 크기 조정
/**
* X 2 ,Y 4
* 1: X
* 2: Y
*/
canvas.scale(2, 4);
/**
* X 2 ,Y 4
* 1: X
* 2: Y
* 3: X
* 4: Y
*/
canvas.scale(2, 4,100,100);
4.Canvas 회전
/**
* , 30 ( )
* :
*/
canvas.rotate(30);
/**
* (100,100) , 30 ,
* :
*/
canvas.rotate(30,100,100);
5.Canvas 작업 예
Paint p = new Paint();
p.setColor(Color.argb(50,255,100,100));
canvas.drawRect(0,0,200,200,p); // Canvas 1
canvas.translate(300,300); // Canvas (100,100)
p.setColor(Color.argb(50,100,255,100));
canvas.drawRect(0,0,200,200,p); // 2
canvas.rotate(30); // Canvas 30
p.setColor(Color.argb(50,100,0,255));
canvas.drawRect(0,0,200,200,p); // 3
canvas.scale(2, 2); // Canvas ,
p.setColor(Color.argb(50,255,255,0));
canvas.drawRect(0,0,200,200,p); // 4
6.Canvas 저장 및 복원
Canvas 는 Canvas 의 상 태 를 편리 하 게 변경 하고 복원 할 수 있 는 몇 가지 방법 을 제공 합 니 다.
이 방법 들 은
save()
,restore()
,restoreToCount(int saveCount)
이다.우 리 는 Canvas 를 이동,회전,확대 등 작업 을 할 때
save()
방법 을 사용 하여 현재 수 정 된 Canvas 상 태 를 저장 하고 restore()
방법 을 호출 한 후 Canvas 를 최근 의 save()
상태 로 복원 할 수 있 습 니 다.save()
방법 은 반환 값 도 있 습 니 다.우 리 는 restoreToCount(int saveCount)
방법 을 호출 하여 이 반환 값 을 매개 변수 로 전달 하면 Canvas 를 특정한 save()
상태 로 복원 할 수 있 습 니 다.
canvas.translate(100,100); // (100,100)
int save1 = canvas.save(); // Canvas ( 1)
canvas.scale(2, 2); // 2
int save2 = canvas.save(); // Canvas ( 2)
canvas.restore(); // save , 2
canvas.restoreToCount(save1);// 1
6.Canvas 그림 인 스 턴 스1.글자 그리 기
/**
* 2: x
* 2: Y
* 3:
*/
canvas.drawText(" !",50, 50, p);//
/**
* 2:
* 3:
* 4: x
* 5: Y
* 6:
*/
canvas.drawText(" !",2,5, 50, 50, p);// , :“ ”
/**
* 2:
* 3:
* 4: ( )
* 5:
*/
canvas.drawTextOnPath("1234567890101123123", path, 0, -50, p);
2.동그라미 그리 기
/**
* 1: X
* 2: Y
* 3: R
* 4:
*/
canvas.drawCircle(200, 200, 100, p);
3.선 긋 기
/*
* 1:startX
* 2:startY
* 3:stopX
* 4:stopY
* 5:
*/
canvas.drawLine(100, 100, 300, 300, p);//
/*
* 。
* 1:float : 。 , 。
* 2:
*/
canvas.drawLines(new float[]{100,100,200,200,200,100,300,100}, p);
4.타원 그리 기
/*
* 1:float left
* 2:float top
* 3:float right
* 4:float bottom
*/
RectF oval = new RectF(150, 200, 500, 400);//
canvas.drawOval(oval, p);
5.라디안 그리 기
/**
*
* 1:RectF 。
* 2: 。( 0 )
* 3:
* 4:
* 5:
*/
canvas.drawArc(oval, 20, 180, false, p);
6.사각형
/**
*
* 1:float left
* 2:float top
* 3:float right
* 4:float bottom
*/
canvas.drawRect(100,100, 200, 200, p);
//
RectF oval3 = new RectF(80, 260, 200, 300);//
canvas.drawRoundRect(oval3, 20, 5, p);// x , y
다각형
/**
* Path (
* *、 , , 。drawPath( 、 ),
* ( ), 。
*/
Path path = new Path(); //
path.moveTo(80, 200);//
path.lineTo(120, 250);
path.lineTo(80, 250);
//.... 。
path.close(); // ,
canvas.drawPath(path, p);
8.베 세 르 곡선 그리 기
p.setStyle(Style.STROKE);
Path path2=new Path();
path2.moveTo(100, 100);// Path
/**
* 1、2:x1,y1
* 3、4:x2,y2
*/
path2.quadTo(300, 100, 400, 400); //
path2.quadTo(500, 700, 800, 800);
canvas.drawPath(path2, p);//
9.화점
/**
* 1、2: x、y
*/
canvas.drawPoint(60, 390, p);//
/**
* 1: , 。 , 。
*/
canvas.drawPoints(new float[]{60,400,65,400,70,400}, p);//
10.그림 그리 기
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
/**
* 1:bitmap
* 2:
* 3:
*/
canvas.drawBitmap(bitmap, 200,300, p);
7.총화이상 이 이 글 의 전체 내용 입 니 다.여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 댓 글 을 남 겨 주세요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.