1 / 26

출력 (Output)

7. 출력 (Output). 학습목표 Canvas 와 Paint 객체를 통해 화면에 원하는 도형을 그리고 속성을 변경하는 기본적인 방법에 대해 소개한다 . 토스트로 메시지를 출력하는 방법과 스피커를 통해 소리를 출력하는 방법에 대해서도 알아본다 . 내용 캔버스 그리기 객체 그 외의 출력. 1. 캔버스. 커스텀 뷰 임의의 위치에 원하는 그림을 그려 넣고 기능도 다시 정의하는 방식 . View 로부터 상속을 받는 MyView 클래스를 정의 .

mairi
Download Presentation

출력 (Output)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 7 출력 (Output)

  2. 학습목표 • Canvas와 Paint객체를 통해 화면에 원하는 도형을 그리고 속성을 변경하는 기본적인 방법에 대해 소개한다. • 토스트로 메시지를 출력하는 방법과 스피커를 통해 소리를 출력하는 방법에 대해서도 알아본다. • 내용 • 캔버스 • 그리기 객체 • 그 외의 출력

  3. 1. 캔버스 • 커스텀 뷰 • 임의의 위치에 원하는 그림을 그려 넣고 기능도 다시 정의하는 방식. • View로부터 상속을 받는 MyView클래스를 정의. • 명칭 충돌을 방지하기 위해 액티비티 클래스 안 내부 클래스로 정의.

  4. 1. 캔버스 • Canvas • 그리기 표면이며 onDraw의 인수로 전달된다. 이 메서드를 재정의하려면 View를 상속받아야 한다. • 캔버스에는 다양한 그리기 메서드을 제공한다. • 다음은 점, 선, 원, 사각형 등 기본 도형을 그리는 메스들이다. void drawPoint (float x, float y, Paint paint) void drawLine (float startX, float startY, float stopX, float stopY, Paint paint) void drawCircle (float cx, float cy, float radius, Paint paint) void drawRect (float left, float top, float right, float bottom, Paint paint) void drawText (String text, float x, float y, Paint paint) • 모든 그리기 메서드의 마지막 인수는 항상 Paint 객체이다. • Paint는 색상, 글꼴, 스타일, 그리기 모드 등의 정보를 지정하며 그려진다. • 색상에는 알파를 지정하여 반투명 출력이 가능하다.

  5. 1. 캔버스 • Canvas실습예제(1)

  6. 1. 캔버스 • Canvas실습예제(2)

  7. 1. 캔버스 • Paint • Paint 객체는 그리기에 대한 속성 정보를 가지는 객체이며 그리기 함수에게 인수로 전달 되어 진다. • Paint의 대표적인 속성은 안티 알리아싱이며 다음 메서드로 지정한다. - void setAntiAlias (boolean aa) 디폴트대로 출력 안티 알리아싱 적용

  8. 1. 캔버스 • Paint • setStroke* 메서드 –선의 모양, 굵기. void setStrokeWidth (float width) void setStrokeCap (Paint.Cap cap) void setStrokeJoin (Paint.Join join) void setStrokeMiter (float miter)

  9. 1. 캔버스 • Paint • setStyle –경계선 및 내부 채움 지정. - void setStyle (Paint.Style style)

  10. 1. 캔버스 • Paint (실습예제)

  11. 2. 그리기 객체 • Bitmap • 비트맵을 사용하려면 res/drawable 폴더에 복사해둔다. • Resources 객체를 얻을때 뷰의 메서드 호출 - Resources View.getResources () • Resources.getDrawable (int id) 메서드로 읽어들인다. • BitmapDrawable은 미트맵을 래핑하는 클래스이며 비트맵의 여러 가지 속성을 정의. • 비트맵 하나를 읽기 위해서는 다음을 연속적으로 후출해야 한다. Resources r=getResources(); // 리소스 관리자 얻음 BitmapDrawable bd=(BitmapDrawable)r.getDrawable(ID); // 비트맵 드로블 읽음 Bitmap bit=bd.getBitmap(); // 비트맵 추출 • 코드에서 비트맵을 생성할 때는 다음 메서드를 호출한다. • static Bitmap createBitmap (int width, int height, Bitmap.Config config)

  12. 2. 그리기 객체 • Bitmap (실습예제)

  13. 2. 그리기 객체 • 텍스트 • 텍스트를 출력하는 메서드는 4가지로 오버로딩 되어 있다. void drawText (String text, float x, float y, Paint paint) - 지정한 좌표에 문자열 전체를 다 출력한다. void drawText (String text, int start, int end, float x, float y, Paint paint) void drawText (char[] text, int index, int count, float x, float y, Paint paint) - 문자열이나 문자 배열의 일부 문자열만 추출하여 출력한다. void drawTextOnPath (String text, Path path, float hOffset, float vOffset, Paint paint) • 텍스트의 영러 가지 속성을 변경하는 Paint의메서들은 다음과 같다. void setTextAlign (Paint.Align align) void setTextSize (float textSize) Typeface setTypeface (Typeface typeface) void setUnderlineText (boolean underlineText) void setStrikeThruText (boolean strikeThruText) void setSubpixelText (boolean subpixelText) void setTextSkewX (float skewX) void setTextScaleX (float scaleX)

  14. 2. 그리기 객체 • 텍스트 (실습예제1)

  15. 2. 그리기 객체 • 텍스트 • 글자의 모양을 결정하는 가장 중요한 정보는 타입페이스이다. • 타입페이스란 : 바탕, 굴림, 궁서 등 고유의 글꼴에 대한 이름 • 페이스를 변경할 때 Paint의 Typeface 메서드를 사용하며 메서드의 인수로 Typeface 객체를 전달한다. • Typefac는 별도 생성자가 없으므로 정적 메서드로 생선해야 한다. - static Typeface create (Typeface family, int style) - static Typeface create (String familyName, int style) • 페이스 이름과 스타일은 인수로 전달한다.

  16. 2. 그리기 객체 • 텍스트 (실습예제2)

  17. 2. 그리기 객체 • Path • 패스(Path)는 직선, 곡선, 다각형 등의 도형 궤적 정보를 가지는 그래픽 객체. • Path는 다방면으로 활용성이 높은 객체이다. • 곡선을 직접 그리는 메서드가 없어 패스에 곡선 정보를 생성 후 패스를 출력 하여 사용. • 패스를 따라 흐르는 텍스트 출력 가능. moveTo(float x, float y) lineTo(float x, float y) addCircle(float x, float y, float radius, Path.Direction dir) addRect(RectF rect, Path.Direction dir) quadTo(float x1, float y1, float x2, float y2) cubicTo(float x1, float y1, float x2, float y2, float x3, float y3)

  18. 2. 그리기 객체 • Path(실습예제)

  19. 2. 그 외의 출력 • 토스트 • 짧은 문자열을 보여주는 작은 팝업 대화상자. • 디버깅, 학습용으로 아주 유용하다. • 다음은 토스트를 출력하는 예제이다.

  20. 2. 그 외의 출력 • 토스트(실습예제)

  21. 2. 그 외의 출력 • 토스트(실습예제)

  22. 2. 그 외의 출력 • 비프음 • 이벤트 발생 여부를 확인하기에 편리하다. • 사운드 파일을 열 때는 다음 정적 메서드를 호출한다. • Static MediaPlayer creat (Context context, int resid) • 인수로는 켄텍스트와 리소스 ID를 전달한다. • 리소스 파일이 raw 폴더에 저장되므로 ID는 통상 R.raw.id식으로 부여된다. • 다음 메서드로 재생 및 중지를 한다. public void start () – 비동기 방식으로 동작 public void stop () public void seekTo (int msec) public void pause ()

  23. 2. 그 외의 출력 • 비프음 (실습예제)

  24. 2. 그 외의 출력 • 비프음 • 사운드를 재생하는 좀 더 간단한 방법으로 SoundPool 클래스를 사용. • 게임 같은 단발적인 사운드를 재생할 때 효율적이다. (생성자는 다음과 같다) • SoundPool (int maxStreams, int streamType, int srcQuality) • 리소스나파일로부터 사운드를 로드할 수 있다. • 재생할 때 다음 메서드를 호출한다. int play (int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)

  25. 2. 그 외의 출력 • 비프음 (실습예제2)

More Related