Search Results

Search Results for '안드로이드/VIEW (UI)' : 4 POSTS

  1. 2010.08.08 화면 회전시 리로드하지 않고 내용 유지하기 (Orientation Change Keep Content) (5)
  2. 2010.08.07 웹뷰 사용하기 (WebView)
  3. 2010.08.07 투명 액티비티 사용하기 (Transparent Activity)
  4. 2010.08.07 전체화면 사용하기 (Full Screen)
안드로이드 화면 회전시 리로드하지 않고 내용 유지하기 (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

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

투명 액티비티 사용하기 (Transparent Activity)

안드로이드 투명 액티비티 사용하기 (Android Transparent Activity)



1. AndroidManifest.xml 에 테마 추가하기



2. Source code 에 추가하기
getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, 
   WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

전체화면 사용하기 (Full Screen)

안드로이드 전체화면 사용하기 (Android Full Screen)



1. SourceCode 사용하기
(1) StatusBar 없애기
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);


(2) TitleBar 없애기
requestWindowFeature(Window.FEATURE_NO_TITLE);


※ 위 내용은 onCreate()의 setContentView(R.layout.main); 전에 사용해야 합니다.

또는


2. AndroidManifest.xml 에서 Theme 사용하기
(1) StatusBar, TitleBar 모두 없애기



(2) TitleBar 없애기