よく出てくるのが、シークバー。
つまみをタッチして、スライドさせるという
スマホっぽい機能です。
//シークバーを生成
SeekBar oSeek = new SeekBar(contextf型);
//初期値
oSeek.setProgress(int型);
//値の最大値を設定 oSeek.setMax(int型);
//値の取得
oSeek.getProgress();
//つまみの画像をチェンジ
oSeek.setThumb(Drawable型);
//背景画像を変更
oSeek.setProgressDrawable(Drawable型);
シークバーはわりとふつうな命令で無難に動くので、
特に挙動で困ることはないと思います。
下記にサンプルソースを上げます。
■サンプルソース
package com.example.nannka;
import android.os.Bundle;
import android.app.Activity;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//基礎画面の作成
LinearLayout oLayout = new LinearLayout(getApplicationContext());
oLayout.setOrientation(LinearLayout.VERTICAL);
setContentView(oLayout);
//シークバーを生成
SeekBar oSeek = new SeekBar(getApplicationContext());
//初期値
oSeek.setProgress(10);
//値の最大値を設定
oSeek.setMax(140);
//背景画像を変更
// oSeek.setProgressDrawable( getResources().getDrawable(R.drawable.ic_launcher) );
//つまみの部分の画像を変更
oSeek.setThumb(getResources().getDrawable(R.drawable.ic_launcher));
//値変更時に呼ばれる
oSeek.setOnSeekBarChangeListener( new OnSeekBarChangeListener() {
public void onProgressChanged(SeekBar seekBar,int progress, boolean fromUser) {
//動かすと呼ばれる
Toast.makeText(getApplicationContext(), "設定値:" + seekBar.getProgress(), Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), "progress:" + String.valueOf(progress), Toast.LENGTH_SHORT).show();
}
public void onStartTrackingTouch(SeekBar seekBar) {
// 触れると呼ばれる
}
public void onStopTrackingTouch(SeekBar seekBar) {
// 離すと呼ばれる
seekBar.setSecondaryProgress(seekBar.getProgress());
}
});
oLayout.addView(oSeek);
}
}
■実行結果
こんな感じで完了です。
実用的に使用する際には黄色いバーの長さに気をつけてね。


