728x90

 안드로이드 설치가 이제는 옛날과 좀 다른 방식으로 지원되고 있습니다.

 

1. 우선은 안드로이드 개발자 커뮤니티 http://developer.android.com/index.html 에 접속합니다.

 

2. 밑에 메뉴중에 Get the SDK 를 클릭 합니다.

 

 

 3. Download the SDK 버튼을 클릭합니다.

 

4. 동의하는란에 체크하시고, 컴퓨터에 맞는 bit를 선택하신후 다운로드를 합니다.

 

5. 받은 파일을 압축을 풀어줍니다.

 

6.압축을 풀면 이클립스,sdk,sdk manager파일이 있는데요

이클립스 파일은 단순히 안드로이드와 연동되있는 이클립스이긴 한데 기존에 다른 ee버전이라던지 다른 용도로도 사용하실분들을위해 기존 이클립스에서 설치하기위해

sdk, SDK Manager 두가지만 복사해줍니다.

이 두가지를 기존에 설치되어있는 eclipse 폴더에 붙여넣기 합니다.

 

 

7. 붙여넣기를 하셨다면 이제 ADT를 설치해야합니다. 이클립스 실행하신후 Help > Install New Software을 클릭합니다.

 

8. Add 버튼을 클릭합니다.

 

9. Name은 임의로 설정하셔도 됩니다. 기본적으로 그냥 ADT설치니 ADT라고 하고

Location에 http://dl-ssl.google.com/android/eclipse를 입력하고 OK

 

10. Developer Tools 선택후 Next

 

11. 아이템들 확인하시고 Next

 

12. 동의 체크 하시고 Finish

 

13. 인스톨 되고 있습니다~.

 

14. 이건뭐야 warning 무시하시고 OK

 

15. 인스톨 완료후 재시작하라는 문구가 뜹니다. 재시작 합니다.

 

16. 간혹 이제 이부분에서 이런 화면이 뜨는분들과 안뜨는 분들이 있는데 안뜬다면 상관없지만 이 화면이 뜬다면 이클립스에서 sdk 경로를 찾지 못하고 있는겁니다.

이럴경우엔 Open Preferences를 눌러 설정으로 이동해줍니다.

 

17. 이 부분은 뭐 구글에 메시지를 보낼꺼뉘 말꺼뉘 뭐 대충 그런거 같은데 하실분들은 하고 굳이 안해도 되니 체크 해제하고 Proceed 누르시면 됩니다.

 

18. Browse 버튼을 클릭하시고 웹에서 다운받아서 아까 이클립스에 붙여넣기 해놓았던 경로로 가서 sdk 폴더를 찾아서 선택합니다.

 

19. 선택후 Apply를 클릭하여 적용하면 오류메시지가 사라집니다. OK버튼을 누릅니다.

 

20. Install new SDK 선택 하시고 Next

 

21. 이것도 그냥 yes하고 Finish 합니다.

 

22. 동의 체크하시고 Install 클릭합니다.

 

 

23. SDK 다운로드가 되고 있습니다.

 

24. 설치과 완료되면 밑에 사진처럼 SDK Manager 아이콘이 보일거에요. 기존 이클립스 하시는 분들중에 안보이시는 분들은 퍼스펙티브를 Java로 바꿔줘보세요. 그럼 보일거에요.

 

25. SDK Manager 클릭하시고 이제 안드로이드 버전들 쏵 깔아버립시다.

 

26. 동의하고 인스톨 ㄱㄱ

 

 

728x90
Posted by 정망스
,
728x90

이건 그냥 제가 다른 자료들 뒤적뒤적 거리면서 한것이기 때문에 이 방법이 우선 최선의 방법은 아니라는것을 말씀드립니다.


저도 혹시나 참고로 기록하는것이기 때문에 분명 더 좋은 방법이 있을 거에요.



흔히들 웹뷰 즉 인터넷 창이 로딩되는 동안 다이얼로그를 띄우고 싶으신 분들이 많을텐데 저는 이렇게 했습니다. 


webviewclient 안에 저렇게 스타트피니쉬 부분의 다이얼로그 함수들을 추가해주기만 하면 됩니다.


소스코드는 안드로이드 대부분 하시는분들이라면 충분히 이해하실거라 믿고 생략 하겠습니다.



728x90
Posted by 정망스
,

웹뷰 임시 정리

Android 2013. 8. 5. 17:39
728x90

# Layout

그냥 <WebView> 태그 넣고 그 안에 속성 넣어주면 끝...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >
      
    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
  
</LinearLayout>



# WebViewClient를 상속받은 클래스 정의

WebViewClient 클래스를 상속받아 구현합니다. 이 안에 shouldOverrideUrlLoading() 메소드를 구현하지 않으면 웹뷰 내 링크 터치할 때 연결 프로그램(기본 브라우저, 크롬 등) 설정창이 뜹니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
import android.webkit.*;
  
class WebBrowserClient extends WebViewClient {
      
    /*
     * 웹뷰 내 링크 터치 시 새로운 창이 뜨지 않고
     * 해당 웹뷰 안에서 새로운 페이지가 로딩되도록 함   
     */
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}



# WebView 객체 생성 및 세팅

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import android.webkit.*;
  
public class MainActivity extends Activity {
  
    private WebView webView;
  
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // 웹뷰 설정
        webView = (WebView)findViewById(R.id.webView);
          
        WebSettings webSettings = webView.getSettings();
        webSettings.setUseWideViewPort(true);
        webSettings.setSupportZoom(true); // 줌 서포터 표시
        webSettings.setBuiltInZoomControls(true); // 멀티터치 줌 지원
        webSettings.setJavaScriptEnabled(true);
          
        webView.setWebViewClient(new WebBrowserClient());
  
        // 웹뷰에 웹 사이트 표시
        String url = "http://www.ldoceonline.com";
        webView.loadUrl(url);
    }
}



# WebView 초기화 방지 

화면 회전시 웹뷰가 초기화되지 않도록 합니다. 액티비티 클래스 안에 onConfigurationChanged() 메소드를 구현합니다.

1
2
3
4
5
6
7
8
9
/*
 * 화면 회전시 화면이 초기화되버리는 문제 방지
 * 매니페스트 액티비티 속성에
 * android:configChanges="orientation|screenSize"
 * 추가 필요
 */
public void onConfigurationChanged(Configuration newConfig){
    super.onConfigurationChanged(newConfig);
}

반드시 매니페스트 파일에 다음과 같이 액티비티 속성을 추가해야 합니다. 

1
2
3
4
5
<activity
    android:name="com.heroism.webviewapp.MainActivity"
    android:configChanges="orientation|screenSize"
    android:label="@string/app_name" >
</activity>



# 뒤로가기 

액티비티 클래스 안에 onKeyDown() 메소드를 구현하면 back 키를 눌렀을때 이전 페이지를 보여주도록 할 수 있습니다. 이때 canGoBack() 메소드로 이전 페이지로 이동할 수 있는지 판단한 후 goBack() 메소드를 호출하여 이전 페이지를 보여줍니다.

첫 페이지 상에서 back 키를 연속으로 두 번 터치하면 앱을 종료시키게 할 수 있습니다. 이 코드는 이곳(http://hyvaa.tistory.com/97) 을 참고했습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// 핸들러, 플래그
private Handler mHandler;
private boolean mFlag = false;
  
// 핸들러 객체 설정 (onCreate() 메소드 안에 구현!!!)
mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        if(msg.what == 0) {
            mFlag = false;
        }
    }
}
  
public boolean onKeyDown(int keyCode, KeyEvent event) {
       
    // 백 키를 터치한 경우
    if(keyCode == KeyEvent.KEYCODE_BACK){
           
        // 이전 페이지를 볼 수 있다면 이전 페이지를 보여줌
        if(webView.canGoBack()){
            webView.goBack();
            return false;
        }
           
        // 이전 페이지를 볼 수 없다면 백키를 한번 더 터치해서 종료
        else {
            if(!mFlag) {
                Toast.makeText(this, "'뒤로' 버튼을 한번 더 누르시면 종료됩니다.", Toast.LENGTH_SHORT).show();
                mFlag = true;
                mHandler.sendEmptyMessageDelayed(0, 2000); // 2초 내로 터치시 
                return false;
            } else {
                finish();
            }
        }
    }
       
    return super.onKeyDown(keyCode, event);
}

 

728x90
Posted by 정망스
,
728x90

웹뷰에서 웹페이지를 열었을때 뒤로가기키를 누르면 웹뷰가 바로 종료되버리고, 이전에 액티비티가 열리거나

프로그램이 바로 종료되버립니다.

 

이러한 상황을 방지하기 위해서, 그전에 보던 웹페이지가 존재할 경우 그 페이지로 돌아가고, 페이지가 없다면 웹뷰를 종료하는

이러한 상황을 처리하도록 함수를 추가해 줍니다.

 

 

 

사진에서 보이다 시피. 이렇게 함수를 추가해주면, 뒤로가기 키를 입력하였을경우 위 설명과 같이 작동하시는 것을 확인할 수 있습니다.

728x90
Posted by 정망스
,
728x90

이외에도 색다르게 하거나, 다른 방법이 있겠? 지 라고 생각하지만

일단 제가 해본 방법입니다.

 

 

 

웹뷰가 설정되어 있는 xml 파일에 열어서 빨간색 선으로 둘러 쌓여 있는 두가지 옵션을 추가해줍니다.

 

 

 

그 다음 액티비티에서 view는 웹뷰의 객체구요. 이렇게 옵션 설정을 해주시면 됩니다.

728x90
Posted by 정망스
,


맨 위로
홈으로 ▲위로 ▼아래로 ♥댓글쓰기 새로고침