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) 갖는다

RSS :
Response

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



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

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


컴포넌트란? (Component)

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

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

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

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


RSS :
Response
안드로이드 화면 회전시 리로드하지 않고 내용 유지하기 (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
RSS :
Response

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

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

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

- 2.0 이상
onBackPressed();
RSS :
Response

웹뷰 사용하기 (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);
RSS :
Response