2015년 6월 21일 일요일

Android Studio에서 OpenCV for Android 사용하기

Android Studio에서 OpenCV를사용해 보기


1.. OpenCV For Android 다운로드

OpenCV 사이트에서 OpenCV-2.4.9-android-sdk.zip을 다운 받아 압축을 풀어 준다.
 얘 ) 
c:\Users\h.kaneda\AndroidStudioProjects\OpenCV-2.4.9-android-sdk\

2. Android Studio에 openCV SDK Import 하기

Android Studio를 열어 Import Project…를 선택OpenCV-2.4.9-android-sdk 폴더를 선택. OK 클릭한다.
Next  > 

Next  > 
 Next  > 

Next  > 

sdk를 체크 한다음 Next  > 

Next  > 

 Finish >

Import 위저드가 완료 되었다면 메뉴에서 빌드를 한다.Build > Rebuild Project

OpenCV SDK 프로젝트 생성을 완료 했다.
이제 프로젝트를 닫아 준다.
File > Close Project


3.. OpenCV를 프로젝트에 포함 시키기

신규 프로젝트를 만들거나, OpenCV를 추가하고 싶었던 기존의 프로젝트를 연다.
그리고 OpenCV 모듈을 추가한다.
File > Import Module…

이번에는 OpenCV-2.4.9-android-sdk/sdk/java/sdk.iml 를 선택한다.
Next >


전체 선택하고 Finish >

openCVLibrary249라는 이름의 라이브러리가 인포트 된것을 확인 할 수 잇다.

app/build.gradleのdependencies에 라이브러리를 추가 한다.compile project(':openCVLibrary249')
Gradle파일을 변경 하였기에 Tools > Android > Sync Project with Gradle Files를 해 주도록 한다.

소스 상에서 org..opencv.android가 자동완성 되는지 확인해 보자.

OpenCV 라이브러리는 동적링크, 정적링크가 가능하다. 동적링크를 하는 경우는 OpenCV를 별도로 인스톨 하라는 메시지가 표시된다. 
이번에는 정적링크를 하는 방법을 .소개하도록 하겠다.app/src/main를 우클릭하고 New > Directory 해서 jniLibs 폴더를 추가 한다.
 
jniLibs 폴더 생성
추가한 jinLIbs 폴더에 OpenCV-2.4.9-android-sdk/sdk/native/libs 의 내용을 복사한다.
jniLibs 생성 및 libs 추가 후 구조

이상으로 Android Studio에서의 OpenCV로 프로젝트를 개발 하는 것이 가능하다.


2015년 6월 4일 목요일

안드로이드에서 강제로 터치 이벤트 발생시키기

안드로이드에서 강제로 터치 이벤트 발생시키기  

(How to raise touch event forcely in Android)

long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis();
MotionEvent down_event = MotionEvent.obtain(downTime, eventTime,   MotionEvent.ACTION_DOWN, 0,0, 0);
MotionEvent up_event = MotionEvent.obtain(downTime, eventTime,   MotionEvent.ACTION_UP, 0, 0, 0);
yourWidget.dispatchTouchEvent(down_event);
yourWidget.dispatchTouchEvent(up_event);



JavaScript Click 이벤트 강제 발생 시키기


JavaScript 이벤트 강제 발생 시키기




## JavaScript 
var clickMe = document.getElementById("click_me");
if( /*@cc_on ! @*/ false )
{
// IE
場合
clickMe.fireEvent("onclick"); //
これでclickイベントが発火する
}
else
{
//
それ以外場合
var event = document.createEvent( "MouseEvents" ); //
イベントオブジェクトを作成
event.initEvent("click", false, true); //
イベントの内容設定
clickMe.dispatchEvent(event); //
イベントを発火させる
}


## JQuery를 이용한 방법
<a href="http://www.naver.com" id="link"> </a>
<iframe id="blogmura_iframe" frameborder="0" width="200" height="200"></iframe>
<script type="text/javascript">
//
이벤트를 연결합니다.
jQuery('#link').click(function (event, data1, data2) {
  alert(data1 + ' : ' + data2);
  jQuery("#blogmura_iframe").attr("src"," http://www.naver.com");
});
//
이벤트를 강제로 발생시킵니다.
jQuery('#link').eq(0).trigger('click', [273, 52]);
</script>


참고 사이트