본문 바로가기

Android

webView 사용하기 -doitmission06









package com.example.netboy.doitmission06;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;

public class MainActivity extends Activity {
private boolean isPageOpen = false; //슬라이딩페이지가 보이는지 여부
private Animation translateLeftAnim,translateRightAnim;
private LinearLayout slidingPage01;
private EditText editText;
private Button button;

private WebView webView;
private Handler mHandler = new Handler();

private static final String TAG = "MainActivity"; //로그를 위한 태그

/**android:visibility="invisible" :
* invisible 안보이는상태, 자리는 차지
* gone : 안보이는상태, 자리차지X
* visible : 보이는상태 (default값)
**/

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

button = (Button)findViewById(R.id.button);
editText = (EditText)findViewById(R.id.editText);
slidingPage01 = (LinearLayout)findViewById(R.id.slidingPage01);
translateLeftAnim = AnimationUtils.loadAnimation(this, R.anim.translate_left);
translateRightAnim = AnimationUtils.loadAnimation(this, R.anim.translate_right);

SlidingPageAnimationListener animListener = new SlidingPageAnimationListener();
translateLeftAnim.setAnimationListener(animListener);
translateRightAnim.setAnimationListener(animListener);

webView = (WebView)findViewById(R.id.webView);
webView.setWebViewClient(new WebBrowserClient());
Log.i("URL", "Opening URL with WebView :" + "http://www.naver.com");
webView.loadUrl("http://www.naver.com");
}

public void onButtonClicked(View v){
if(isPageOpen){
slidingPage01.startAnimation(translateRightAnim);
}else{
slidingPage01.setVisibility(View.VISIBLE);
slidingPage01.startAnimation(translateLeftAnim);
}
}

public void onButton2Clicked(View v){
Log.i("URL", "******* URL with WebView :" + editText.getText().toString());
webView.loadUrl(editText.getText().toString());
}

/**ebview.loadUrl(url)은 새창으로 오픈하게 되므로.
자신의 웹뷰안에서 띄우려면 웹뷰를 오버라이딩해서 선언.**/
final class WebBrowserClient extends WebViewClient {

public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return true;
}
}

private class SlidingPageAnimationListener implements Animation.AnimationListener {

@Override
public void onAnimationStart(Animation animation) {}

@Override
public void onAnimationEnd(Animation animation) {
if (isPageOpen) {
slidingPage01.setVisibility(View.GONE);
button.setText("펼치기");
isPageOpen = false;
} else {
button.setText("닫기");
isPageOpen = true;
}
}

@Override
public void onAnimationRepeat(Animation animation) {}
}
}