본문 바로가기

Daily Sample

[Day12] Android Simple Comic Book App 소스

TITLE : Android Simple Comic Book App

Date : 2010/06/24

Writen by Dayyoung

Description :

This is Source that make Comic book App by extends Webview.

Download Link : 

 

Reference Site: http://nocivus.posterous.com/double-clicktap-detection-on-a

안드로이드 에서 확대/축소를 가진 기능의 일반View가 없는 것으로 알고있다.

ImageView 같은 경우도 확대 축소에 대해서 Draw이벤트에서 직접 구현해 줘야하는데 상당히 번거롭다.

설령 확대축소 기능을 구현했다 하더라도  일반View의 경우 멀티스크롤을 지원하지 않기때문에 상당히 번거롭다.

특히 웹뷰를 이용할 경우 멀티터치가 지원되는 폰이라면 멀티터치 기능도 가능하다니 ~

그래서 웹뷰를 사용자 정의해서 쓰면 어떨까하는 생각에 구현해 보았고, 실행결과 생각보다 퍼포먼스가 좋아서 실무에 사용할 수 있을 듯 하다.

 오늘은 WebView를 이용한 안드로이드 만화책 APP 만들기 !

1. 사용하고 싶은 이미지가 Embeded된 html 파일을 작성해서 Asset폴더에 넣는다.

 

2. MainActivity의 Oncreate부분에 WebView 부라우져를 호출한다. 

        browser = (WebView) findViewById(R.id.webView);   
        browser.getSettings().setJavascriptEnabled(true);    // 자바스크립트 사용 시 설정       
        browser.loadUrl(“file:///android_asset/test.htm“);  // 로컬 이미지 html 호출                    
        browser.setInitialScale(20); // 초반 스케일 사이즈

 

3.browser.setOnTouchListener에 더블클릭 리스너를 구현해서 ZoomIn() 호출한다. 

if( event.getAction() == MotionEvent.ACTION_DOWN)
   { //클릭 이벤트 발생
    
         long thisTime = System.currentTimeMillis(); 
         //눌린 시간
         if (thisTime – lastTouchTime < 250) {
          // Double tap 눌린시간 – 예전시간이 250ms 이내일 경우 더블클릭으로 인식      
          browser.zoomIn();
          browser.zoomIn();
          browser.zoomIn();
          //브라우져 확대 (3배확대)
          Toast.makeText(getApplicationContext(), “Zoom in”, 1).show();
         }          
         else {
          // Too slow         
         }

 

4.   browser.setOnLongClickListener에 롱프레스 이벤트를  구현해서 ZoomOut() 호출

@Override
   public boolean onLongClick(View v) {
    // TODO Auto-generated method stub    
      browser.zoomOut();
      browser.zoomOut();
      browser.zoomOut();
         //브라우져 축소 (3배축소)
      Toast.makeText(getApplicationContext(), “Zoom out!”, 1).show();
    return false;
   }
  });
 

 

여러 장으로 HTML 파일로 구성된 App을 구현할 경우 카탈로그,뷰어 등 다양한 용도로 응용이 가능할 것이다.

Creative Commons License
이 저작물은 크리에이티브 커먼즈 저작자표시 3.0 Unported 라이선스에 따라 이용할 수 있습니다.