ViewFlipperにレイアウトを追加すると、追加した順番で、
1つ1つのViewが表示されます。
次のViewに
showNext();
前のViewに
showPrevious();
スライドショーの再生
startFlipping();
スライドショーの停止
stopFlipping();
スライドショーを勝手に始める
setAutoStart(boolean);
スライドショーの間隔
setFlipInterval(int);
■サンプルソース
package com.pulepule.linear;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.NumberPicker;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.NumberPicker.OnValueChangeListener;
import android.widget.ViewFlipper;
public class MainActivity extends Activity implements OnClickListener{
//ViewFlipperを宣言
private ViewFlipper oViewFliper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//基レイアウトの作成
LinearLayout oLayout = new LinearLayout(getApplicationContext());
oLayout.setOrientation(LinearLayout.VERTICAL);
//基レイアウトを画面に設定
setContentView(oLayout);
//ViewFlipperの生成
oViewFliper = new ViewFlipper(getApplicationContext());
//自動でスライドショーを始める
oViewFliper.setAutoStart(false);
//スライドショーの感覚を指定する
oViewFliper.setFlipInterval(1000);
//ViewFlipper、1ページ目、2ページ目の作成と共に追加
oViewFliper.addView(Make_Text(1, "1ページ目"));
oViewFliper.addView(Make_Text(2, "2ページ目"));
//ViewFlipper、3ページ目の作成
//子layoutを作成
LinearLayout oViewFliperChildLayout = new LinearLayout(getApplicationContext());
//ImageViewの生成
ImageView oImage = new ImageView(getApplicationContext());
//ImageViewに画像を設定
oImage.setImageResource(R.drawable.ic_launcher);
//子layoutに作成したtextviewやら、画像を追加
oViewFliperChildLayout.addView(Make_Text(3, "3ページ目"));
oViewFliperChildLayout.addView(oImage);
//ViewFlipper、3ページ目に子Layoutを追加
oViewFliper.addView(oViewFliperChildLayout);
//ViewFlipperをレイアウト(setVontentViewした)に追加
oLayout.addView(oViewFliper);
//ボタンの作成
oLayout.addView(Make_Button(4, "次へ"));
oLayout.addView(Make_Button(5, "戻る"));
oLayout.addView(Make_Button(6, "スライドショー再生"));
oLayout.addView(Make_Button(7, "スライドショー停止"));
}
private TextView Make_Text(int id, String sTitle){
TextView tv = new TextView(getApplicationContext());
tv.setText(sTitle);
tv.setId(id);
return tv;
}
private Button Make_Button(int id, String sTitle){
Button btn = new Button(getApplicationContext());
btn.setText(sTitle);
btn.setTag(sTitle);
btn.setId(id);
btn.setOnClickListener(this);
return btn;
}
@Override
public void onClick(View v) {
Log.d("ボタン",(String) v.getTag());
if (v.getTag().equals("次へ")){
oViewFliper.showNext();
}else if (v.getTag().equals("戻る")){
oViewFliper.showPrevious();
}else if (v.getTag().equals("スライドショー再生")){
oViewFliper.startFlipping();
}else if (v.getTag().equals("スライドショー停止")){
oViewFliper.stopFlipping();
}
}
}
■実行結果
最終ページで次ボタンを押すと、最初のページに遷移して、
最初のぺージで戻るボタンをおすと最終ページに遷移するのが確認できると思います。
1つのソースコードで複数の画面を制御できるのが魅力です。


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