스크롤 뷰는 프레임 레이아웃의 하위 클래스이다.

말 그대로 이는 한 화면에 나타내지 못하는 내용들을 보여주기 위해서 이용하는 뷰이다.

예제 코드는 다음과 같다.

XML

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scr"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
</ScrollView>

Java

package imageview.test;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;
import android.widget.*;

public class ImageViewActivity extends Activity{
 public void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  ScrollView svw = (ScrollView)findViewById(R.id.scr);
  svw.addView(new ColorView(this));
 }
}

class ColorView extends View{
 String m_Text="";
 public ColorView(Context context){
  super(context);
 }
 public void onDraw(Canvas canvas){
  Paint pnt = new Paint();
  for(int i=0;i<1024;i+=4){
   pnt.setARGB(255, 255-i/4, 255-i/4, 255);
   canvas.drawRect(0, i,500,i+4,pnt);    
  }
 }
 
 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
  setMeasuredDimension(500,1024);
 }
}

다음은 웹뷰이다.

웹뷰는 C#으로 친다면 WebBrowser 와 같은 역할이다.

간단한 테스트 코드를 보자면 다음과 같다.

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
  <Button
      android:id="@+id/btn1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" 
      android:text="go"   
  />  
  <Button
      android:id="@+id/btn2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="back"
      />
  <Button
      android:id="@+id/btn3"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="forward"
      />
  <Button
      android:id="@+id/btn4"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="local"
      />  
 </LinearLayout>
    <FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> 
  <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > 
   <WebView
       android:id="@+id/web"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:visibility="visible">   
   </WebView>
  </LinearLayout>
 </FrameLayout>
</LinearLayout>

다음은 자바 코드이다.

package imageview.test;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.*;

public class ImageViewActivity extends Activity{
 WebView web;
 public void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  web = (WebView)findViewById(R.id.web);
  web.setWebViewClient(new webClient());
  WebSettings set = web.getSettings();
  set.setJavaScriptEnabled(true);
  set.setBuiltInZoomControls(true);
  web.loadUrl("http://www.google.com");  
 }
 
 class webClient extends WebViewClient{
  public boolean shouldOverriderUrlLoading(WebView view, String url){
   view.loadUrl(url);
   return true;
  }
 }
}