Android 에서 Canvas 의 일반적인 방법 요약

5911 단어 androidcanvas방법.
1.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.총화
이상 이 이 글 의 전체 내용 입 니 다.여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 댓 글 을 남 겨 주세요.

좋은 웹페이지 즐겨찾기