◆ ScrollViewを使わない場合
まず、縦に収まりきらない画面を作って、どのような表示になるか確かめてみましょう。
"Text 0"から"Text 99"を単純に縦に表示させていきます。1つあたりの高さは40ピクセルです。
Androidプロジェクトの設定
ScrollViewTest1a.java
プロジェクト名 ScrollViewTest1a ビルドターゲット Android 2.1-update1 アプリケーション名 ScrollViewTest1a パッケージ名 jp.co.triware.samples.ScrollViewTest1a アクティビティーの作成 ScrollViewTest1a 最小SDKバージョン 7
package jp.co.triware.samples.ScrollViewTest1a;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.LinearLayout;
import android.view.Gravity;
public class ScrollViewTest1a extends Activity {
private static final int itemHeight = 40;
private static final int itemWidth = 80;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout llVertical = new LinearLayout(this);
llVertical.setOrientation(LinearLayout.VERTICAL);
llVertical.setGravity(Gravity.CENTER_HORIZONTAL);
for (int i = 0; i < 100; i ++) {
TextView tv = new TextView(this);
tv.setHeight(itemHeight);
tv.setWidth(itemWidth);
tv.setText("Text " + i);
llVertical.addView(tv);
}
setContentView(llVertical);
}
}実行結果"Text 11"以降が画面からはみ出してしまいました。
◆ ScrollViewを使う場合
画面に収まりきらない場合は、ScrollViewを使ってスクロールできるようにします。
Androidプロジェクトの設定
ScrollViewTest1b.java
プロジェクト名 ScrollViewTest1b ビルドターゲット Android 2.1-update1 アプリケーション名 ScrollViewTest1b パッケージ名 jp.co.triware.samples.ScrollViewTest1b アクティビティーの作成 ScrollViewTest1b 最小SDKバージョン 7
package jp.co.triware.samples.ScrollViewTest1b;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.LinearLayout;
import android.view.Gravity;
import android.view.ViewGroup;
public class ScrollViewTest1b extends Activity {
private static final int itemHeight = 40;
private static final int itemWidth = 80;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout llOutside = new LinearLayout(this);
llOutside.setOrientation(LinearLayout.VERTICAL);
llOutside.setGravity(Gravity.CENTER_HORIZONTAL);
ScrollView sv = new ScrollView(this);
sv.setLayoutParams(new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
llOutside.addView(sv);
LinearLayout llInside = new LinearLayout(this);
llInside.setOrientation(LinearLayout.VERTICAL);
llInside.setGravity(Gravity.CENTER_HORIZONTAL);
sv.addView(llInside);
for (int i = 0; i < 100; i ++) {
TextView tv = new TextView(this);
tv.setHeight(itemHeight);
tv.setWidth(itemWidth);
tv.setText("Text " + i);
llInside.addView(tv);
}
setContentView(llOutside);
}
}ScrollViewは1つのオブジェクトに対してのみ使用可能です。このサンプルでは、100個のTextViewをLinearLayoutで囲み、それをScrollViewでスクロールさせています。実行結果
スクロールさせることで最後まで表示することができました。
今回は画面全体をスクロールさせるためにScrollViewを使いましたが、1画面の中で複数のエリアをスクロール表示することもできます。画面を上半分と下半分、あるいは左半分と右半分にわける、というケースが多いかもしれませんね。もちろん画面の一部だけをスクロール表示することもできます。
縦スクロールではなくて横スクロールさせたい場合もありますよね。それはまた別の機会にご紹介しましょう。ヒントは「HorizontalScrollView」です。



0 件のコメント:
コメントを投稿