Search Results

Search Results for 'Android' : 17 POSTS

  1. 2010.08.13 액티비티란? (Activity)
  2. 2010.08.13 안드로이드 어플리케이션 (Android Application)
  3. 2010.08.08 화면 회전시 리로드하지 않고 내용 유지하기 (Orientation Change Keep Content) (5)
  4. 2010.08.08 이전 액티비티로 돌아가기 (Back Activity)
  5. 2010.08.07 웹뷰 사용하기 (WebView)

액티비티란? (Activity)



안드로이드 액티비티란? (Android Activity)

- 사용자 인터페이스를 구성하는 기본 단위이며 보통 하나의 화면이 하나의 액티비티라고 봐도 무방하다

- 액티비티 매니저에(Activity Manager-AndroidManifest 를 참조하여 관리) 의해 관리되며
  Activity Class를 상속 받아 구성한다

- 한개 이상의 레이아웃과 뷰, 이벤트로 구성되며 한개 이상의 액티비티를 모아
  응용프로그램을(Application) 구현할 수 있다

- 런쳐(Application Launcher) 에 의해 호출되며 (AndroidManifest 내에 정의) 다른 액티비티를 호출할 수 있다 
  (startActivity, startActivityForResult 메소드에 의해 호출되며 onActivityResult 메소드에 의해 결과를 받는다)

- finish 메소드로 종료할 수 있으며 startActivityForResult로 호출한 액티비티를
  종료시키고자 할때는 finishActivity 메소드를 이용한다

- 액티비티를 호출할때에는 인텐트를(Intent) 사용하며 호출한 액티비티는 태스크에(Task) 차곡 차곡 쌓인다

- 액티비티는 생명주기를(LifeCycle) 갖는다

- 액티비티는 연관성을(Affinity) 갖는다

Comments List

  1. Comment List
비밀글

안드로이드 어플리케이션 (Android Application)



안드로이드 어플리케이션 (Android Application)

- 하나 이상의 컴포넌트와 리소스등으로 구성되며 패키지 파일로(android package = .apk파일) 묶여 배포된다.


컴포넌트란? (Component)

- 액티비티(Activity), 서비스(Service), 브로드캐스트 리시버(Broadcast Receiver),
  컨텐트 프로바이더(Content Provider) 로 구성된다.

- 사용하고자 하는 컴포넌트는 AndroidManifest에 미리 정의해 두어야 한다

- 각각의 컴포넌트는 필요할때마다 인스턴스화 시켜 사용할 수 있다

- Content Provider는 ContentResolver 에 의해 활성화 되며 나머지 컴포넌트들은
  인텐트에(Intent) 의해 활성화 된다.


Comments List

  1. Comment List
비밀글
안드로이드 화면 회전시 리로드하지 않고 내용 유지하기 (Android Orientation Change Keep Content)

안드로이드는 화면의 orientation 변경시 기본적으로 onDestroy()를 호출 후 onCreate()를 호출하여
해당 화면의 액티비티가 초기화 되며 이것은 아래의 방법을 통해 방지가 가능합니다

주요시스템 변경은 onConfigurationChanged를 이용해 감지할 수 있습니다

orientation: 스크린이 세로에서 가로로 바뀌는것
keyboardHidden: 키보드가 보여지거나 숨겨지는것.
fontScale: 사용자가 원하는 폰트의 크기를 변경하는것.
locale: 사용자가 언어 세팅을 변경하는것.
keyboard: 키보드의 종류가 바뀌는것.


- AndroidManifest 에 정의
<activity android:configChanges="orientation|keyboardHidden"></activity>


- configChanges시 관련내용 제어하기
@Override
public void onConfigurationChanged(Configuration newConfig) {
   super.onConfigurationChanged(newConfig);
   /*
   // 위 소스만 적용했을때 내용이 유지되고 추가 코드를 입력할때는 아래와 같이 한다
   if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
      // 가로모드로 변경되었을때 
   if (newConfig.keyboardHidden == Configuration.KEYBOARDHIDDEN_NO)
      // 키보드가 보여질때
   */
}


- Configuration
http://developer.android.com/reference/android/R.attr.html#configChanges
http://developer.android.com/reference/android/content/res/Configuration.html

Comments List

  1. Comment List
비밀글

이전 액티비티로 돌아가기 (Back Activity)

안드로이드 이전 액티비티로 돌아가기 (Android Back Activity)

- 1.6 이하
onKeyDown(KeyEvent.KEYCODE_BACK, null);

- 2.0 이상
onBackPressed();

Comments List

  1. Comment List
비밀글

웹뷰 사용하기 (WebView)


1. AndroidManifest.xml 퍼미션 설정



2. xml layout 설정

  
  
  
  
  





3. Source Code



- 웹뷰에 웹페이지 삽입하기
Webview wv = (WebView)findviewbyid(R.id.wv);
wv.loadUrl(url);


(1) ProgressBar 추가하기
- 페이지 로딩상태는 setWebChromeClient 를 이용해 가져오며 상태값 변화시 onProgressChanged 가 호출됩니다.
- view는 변화된 해당 webview이며 progress는 로딩율입니다.

wv.setWebChromeClient(new WebChromeClient() {   
   ProgressBar pb = (ProgressBar)findViewById(R.id.ProgressBar);

   public void onProgressChanged(WebView view, int progress) {
      pb.setProgress(progress); // ProgressBar값 설정
    
      if(progress == 100){ // 모두 로딩시 Progressbar를 숨김
         pb.setVisibility(View.GONE);
      } else{
         pb.setVisibility(View.VISIBLE);
      }
   }
});


(2) ZoomControl 추가하기
View zoom = wv.getZoomControls();
zoom.setVisibility(View.GONE);
((LinearLayout)findViewById(R.id.ZoomArea)).addView(zoom);


(3) WebView Settings
http://developer.android.com/reference/android/webkit/WebSettings.html

wv.getSettings().setJavaScriptEnabled(true); // 자바스크립트 허용(Default. 비허용)
wv.getSettings().setLoadsImagesAutomatically(true);
wv.getSettings().setSavePassword(false);
wv.getSettings().setSaveFormData(false);
wv.getSettings().setSupportZoom(true);
wv.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
wv.getSettings().setUserAgent(1);
wv.getSettings().setSupportMultipleWindows(false);




- 웹뷰에 html코드 직접 삽입하기
final String tag = "Hello World! - 1";
final String mimeType = "text/html";
final String encoding = "utf-8";
Webview wv = (WebView)findviewbyid(R.id.wv);
wv.loadData(tag, mimeType, encoding);

Comments List

  1. Comment List
비밀글