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 件のコメント:
コメントを投稿