달력

12

« 2019/12 »

  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  

   

SurfaceView(서피스뷰)

  • 안드로이드는 OpenGL ES라이버리를 포함하고 있어 3D를 지원할 수있습니다.
  • 애플리케이션에서 3D 객체를 출력하려면 SurfaceView를 이용해야 합니다. 하드웨어 가속 기능이 있어 그래픽을 보다 빠르게 처리할 수 있습니다.
  • Surfaceview는 안드로이드의 기본 뷰 체계와 다르게 구현되어 있어 뷰를 상속하여 그래픽을 구현한 방법을 그대로 사용할 수 없습니다. 그러므로 SurfaceView를 이용한 그래픽 그리기 방법을 별도로 따라야 합니다.
  • 안드로이드의 기본 뷰 에 포함되어 있지 않기 때문에 onDraw()와 isvalidate()메소드를 사용할 수 없으며 이를 대체할 수 있는 메소드를 직접 구현해야 합니다.
  • SurfaceView는 2D그래픽도 그대로 지원합니다.
  • 카메라에서 영상을 빠르게 보여주기 위해서 광범위하게 사용됩니다.

   

   

   

   

이벤트 처리

Callback Interface는 SurfaceHolder를 통해서 작성한 Surface와 SurfaceView를 연결하기 위해서 Surface의 생성, 변경, 종료에 대한 이벤트 처리합니다.

class MyCameraSurface extends SurfaceView implements SurfaceHolder.Callback{ }

   

   

SurfaceView를 이용한 그래픽 그리기 단계

1

SurfaceView 상속하면서 Callback인터페이스 구현

2

getHolder()메소드로 SurfaceHolder객체 참조

3

SurfaceHolder객체의 addCallback()메소드를 호출하여 Callback인터페이스 설정

4

Callback 인터페이스의 surfaceCreated()메소드 재정의

5

Callback 인터페이스의 surfaceChanged()메소드 재정의

6

Callback 인터페이스의 surfaceDestroyed()메소드 재정의

   

   

Lock 잠금 기능

SurfaceView가 그래픽 작업을 할때 시스템이나 다른 어플리케이션에서 접근할 수 없도록 막는 기능을 사용합니다. (SurfaceView의 크기 변동과 동시에 그래픽을 그릴 경우 데드락이 발생합니다)

   

private void myDraw(){

Canvas _canvas = null;

   

try{

_canvas = mHolder.lockCanvas(null);

   

//객체 그리기 작업

super.draw(_canvas);

_cansvs.drawBitmap(mBitmap, 0, 0, null);

}finally{

if(_canvas!=null){

mHolder.unlockCanvasAndPost(_canvas);

}

}

}

  

   

   

SurfaceView 동작 도식도

   

   

   

SurfaceView 클래스

화면 제공

단순히 화면에 보여지는 하나의 뷰를 정의

Surface

그래픽버퍼 (데이터 제공)

SurfaceHolder 인터페이스

화면 제어

SurfaceView를 내부적으로 제어

SurfaceHolder.Callback 인터페이스

SurfaceView의 크기 변화등 상태 정보를 관리합니다.

Surface의 생성, 변경, 종료에 대한 이벤트 처리를 수행합니다.

SurfaceView에서 보여지는 화면 제어를 하기 위해서 SurfaceHolder생성하고

SurfaceHolder를 이용해서 Surface(버퍼)에 그림을 그리면 SurfaceView에 반영됩니다.

Posted by codedragon codedragon

댓글을 달아 주세요

이벤트 처리 - 익명 내부 클래스 사용

   

이벤트 소스와 이벤트 리스너 연결하면서 익명내부 클래스 구현

버튼을 클릭하면 현재 날짜와 시간 정보를 보여주도록 하겠습니다.

   

xml 버튼 추가

버튼 좌우 크기 늘리기

wrap_content

글을 중심으로 상대적으로 감싸게 됨

match_parent

화면 크기와 매치

   

강의 내용

xml

RelativeLayout변경

Graphical Layout > Form Widgets-Button추가

MainActivity.java

//날짜 표현 형식 설정

//이벤트 소스와 이벤트 리스너 연결하면서 익명내부 클래스 구현

//현재 날짜와 시간

   

   

   

출력 결과

   

Posted by codedragon codedragon

댓글을 달아 주세요

layout에 생성한 버튼을 읽어와서 연월일시간분초를 표시하기

   

   

강의 내용

xml

RelativeLayout변경

Graphical Layout > Form Widgets-Button추가

MainActivity1.java

//현재 날짜와 시간

//기본 날짜 표현형식으로 출력

//날짜 표현 형식 설정

//날짜 표현 형식 지정하여 출력

MainActivity1.java + MainActivity.java

implements View.OnClickListener

//버튼 이벤트 소스와 이벤트 리스너 연결

//이벤트 핸들러

   

SimpleDateFormat

날짜 표현 형식 설정 SimpleDateFormat("yyyy-MM-dd a hh:mm:ss")

   

   

 

출력결과

기본 날짜 표현형식으로 출력

   

날짜 표현 형식 지정하여 출력

   

   

버튼 이벤트 연결 후 클릭시 현재 시간 표시

 

   

   

 

Posted by codedragon codedragon

댓글을 달아 주세요

콜백함수(callback function)

익명함수의 대표적인 응용형태가 콜백함수이며 코드를 통해 명시적으로 호출하는 함수가 아닙니다.

개발자는 단지 함수 정의만 하고, 어떤 이벤트가 발생하거나 특정 시점에 도달했을 때 시스템에서 호출해주는 함수가 콜백함수입니다.

   

대표적인 콜백 함수 사용 예) 자바스크립트의 이벤트 핸들러 처리

   

자바스크립트의 이벤트 처리와 콜백함수 호출 도식도

   

   

학습 내용

웹페이지 로드시 경고창을 띄워주는 과정에서의 처리과정에 대해 학습

   

   

소스 코드

<html>

<head>

<meta charset="UTF-8">

<title>이벤트 처리와 콜백함수</title>

<script type="text/javascript">

// 페이지 로드시 호출될 콜백 함수

window.onload = function() {

alert('콜백함수가 실행되었습니다.');

};

</script>

</head>

<body>

</body>

</html>

   

출처: <https://github.com/10zeroone/study_javascript/blob/master/WebContent/ch04-function/23.html>

   

   

   

window.onload이벤트핸들러와 콜백함수 처리 도식도

웹페이지load 이벤트 발생 후 window.onload이벤트 핸들러에서 호출한 콜백함수가 실행되었습니다

   

'Development > JavaScript, jQuery, ...' 카테고리의 다른 글

내부 함수 호출/함수 스코프  (0) 2014.06.09
즉시 실행 함수  (1) 2014.06.09
이벤트 처리와 콜백함수  (0) 2014.06.08
익명 함수 형태의 내부 함수  (0) 2014.06.08
jQuery 파일 CDN 경로  (0) 2014.06.08
jQuery의 특징  (0) 2014.06.08
Posted by codedragon codedragon

댓글을 달아 주세요

   

콜백함수(callback function)

익명함수의 대표적인 응용형태가 콜백함수이며 코드를 통해 명시적으로 호출하는 함수가 아닙니다.

개발자는 단지 함수 정의만 하고, 어떤 이벤트가 발생하거나 특정 시점에 도달했을 때 시스템에서 호출해주는 함수가 콜백함수입니다.

   

대표적인 콜백 함수 사용 예) 자바스크립트의 이벤트 핸들러 처리

   

자바스크립트의 이벤트 처리와 콜백함수 호출 도식도

   

   

Posted by codedragon codedragon

댓글을 달아 주세요