Goodroid

GoodroidはAndroidアプリ開発のための情報をコラムやブログで紹介するサイトです。


シークバーを表示する
ここではシークバーを表示する方法を説明します。

シークバーはツマミを左右に移動させてパラメータを調整するGUI部品で、 音量調整なんかを表現するためによく用いられます。

シークバーの動作を「OnProgressChanged」関数で取得し、任意の処理を行うことができます。

SeekbarActibity.java
package goodroid.sample.seekbar;

import android.app.Activity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;

public class SeekbarActivity extends Activity
    implements OnSeekBarChangeListener{
    /** Called when the activity is first created. */

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // シークバーインスタンスの取得
        SeekBar seekBar = (SeekBar)findViewById(R.id.seekBar1);

        // シークバーの最大値を100に設定
        // seekBar.setMax(100);

        // 初期値を30に設定
        // seekBar.setProgress(30);

        // シークバーをリスナーに設定
        seekBar.setOnSeekBarChangeListener(this);
    }

    public void onProgressChanged(SeekBar seekBar, int progress,
		boolean fromUser) {
	// つまみを移動させたときに呼ばれる
    }

    public void onStartTrackingTouch(SeekBar seekBar) {
	// つまみに触れたときに呼ばれる
    }

    public void onStopTrackingTouch(SeekBar seekBar) {
	// つまみを離したときに呼ばれる
    }
}

アクティビティでは以下の関数を用いてシークバーの変化を確認し、処理を分けることができます。

◆onProgressChanged   // つまみを移動させたとき
◆onStartTrackingTouch  // つまみに触れたとき
◆onStopTrackingTouch  // つまみを離したとき

シークバーを表示するためにはSeekBarクラスを用います。

シークバーの最大値、初期値はJavaでもXMLでも設定できますが、今回はXMLで設定しています。
Javaで変更する際は上記ソースコードのように「setMax」関数、「setProgress」で行えます。
XMLの場合は以下のソースコードのように「android:max」で最大値を、「android:progress」で初期値を与えることができます。

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <SeekBar
        android:id="@+id/seekBar1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="100"
        android:progress="30"
        />

</LinearLayout>


実行結果

4950 views | コメント:0 | 2012-05-23
コメント
まだこの記事にコメントはありません
コメントの投稿
名前 (必須)

メールアドレス (非公開)

本文(必須)

パスワード (必須)
(半角数字4桁)