ビューを切り替えるviewSwitcher

 

 

VIewSwitcherことでビューを切り替えます。これはまだノートを覚えておくことが、理解していない、baseAdapterを使用しています。

< RelativeLayoutの
     のxmlns:アンドロイド= "http://schemas.android.com/apk/res/android" 
    アンドロイド:layout_width = "match_parent" 
    アンドロイド:layout_heightは= "match_parentは" > 
    <! - ViewSwitcherコンポーネントを定義します- > 
    < viewSwitcher
         Androidは:上記のIDを述べ= "@ +上記のID / viewSwitcher言及し、" 
        アンドロイド:layout_width = "match_parent" 
        アンドロイド:layout_height = "match_parentを"  /> 
    <! - 画面上にスクロールするボタンが定義されて- > 
    < ボタン
         アンドロイド:上記のIDを述べ= "上記のid @ / button_prev "+ 
        アンドロイド:layout_width = "wrap_content"
        アンドロイド:layout_height = "wrap_content" 
        アンドロイド:layout_alignParentBottom = "true"の
        アンドロイド:layout_alignParentStartは= "true"の
        アンドロイド:のonClickは= "PREV" 
        アンドロイド:テキスト= "&LT;"  /> 
    <! - 定义滚动到下一屏的按钮- > 
    < ボタン
         アンドロイド:ID = "@ + ID / button_next" 
        アンドロイド:layout_width = "wrap_content" 
        のandroid:layout_height = "wrap_content" 
        アンドロイド:layout_alignParentBottom = "真" 
        アンドロイド:layout_alignParentEnd ="
        アンドロイド:テキスト= "&GT;"  /> 
</ RelativeLayout >
主なインタフェース
パッケージには違約金com.example.viewswitcher 

インポートandroid.app.Activity
 インポートandroid.os.Bundle
 インポートandroid.view.ViewGroup
 インポートandroid.graphics.drawable.Drawable
 インポートandroid.view.LayoutInflater
 インポートandroid.view.View
 インポート android.widget。* // 画面表示の数表示するための各アプリケーションプログラムのための定数を定義し、constとヴァルは= 12 NUMBER_PER_SCREENある
 クラスがMainActivity:活動()
{ // すべてのアプリケーションに格納されたリスト収集システムプライベート・ヴァル・アイテム=のArrayList <のDataItem> ()
     // 現在画面いくつかの上に表示されている番組録画プライベート = -1 VARのscreenNoを
    



    
    
    // プログラムを保存するための画面の合計数は、占有
    プライベートのInt = 0:VARのScreenCountは
     プライベート ViewSwitcher =:VARスイッチャー?ヌル
    // LayoutInflaterオブジェクトを作成する
    プライベート LayoutInflater =?:ようにするvarインフレータをヌル
    // 提供される画面表示あたりのGridViewの責任BaseAdapterリスト項目
    プライベートヴァルアダプター= オブジェクト:BaseAdapter()
    { 
        オーバーライド楽しい同様にgetCount():のInt 
        { 
            // あなたが最後の画面に到達し、そしてアプリケーションの数している場合は割り切れないNUMBER_PER_SCREENの
            リターン IF(screenNo == ScreenCountは- 1 && items.size NUMBER_PER_SCREEN%が!= 0 
            { 
                // プログラムの数は、最後の画面がNUMBER_PER_SCREENの残りのアプリケーションの数を示します
                %items.size NUMBER_PER_SCREEN 
            } NUMBER_PER_SCREEN
             // そうでない場合は、画面ごとに表示プログラムの数はNUMBER_PER_SCREENある
        } 

        オーバーライドのgetItemファン(位置:INT):のDataItem 
        { 
            // screenNoに係る位置リスト項目データの計算
            戻り項目[screenNo * + NUMBER_PER_SCREENを位置] 
        } 

        オーバーライド楽しいgetItemId(位置:INT):ロング
        { 
            返すposition.toLong()
        } 

        (:INT、convertView:表示位置のオーバーライドgetViewメソッド楽しい、親:のViewGroup):ビュー
        { 
            VARのビューを= ConvertView
             IF(convertView == NULL 
            { 
                // ファイルのレイアウトをロードR.layout.labelicon 
                ビュー=インフレータよう?.Inflate(R.layout.labelicon、NULL 
            } 
            // R.layout.labeliconコンポーネントレイアウトファイルImageViewのを取得します以下のため、およびアイコンを設定 
            ヴァルImageViewの=ビュー?.findViewById <ImageViewの> (R.id.imageview)
            ImageViewの.setImageDrawable(.drawableのgetItem(位置))
             // R.layout.labeliconレイアウトファイルのTextViewコンポーネントを取得し、そして、テキスト設定 
            ヴァルビューのTextViewを= !!。findViewById <TextViewに> (R.id.textview)
            textView.text =getItem(位置).dataName
             返すビューを
        } 
    } 

    // クラス内のアプリケーションを表す
    クラスのDataItem(dataName VAR?:VARの文字列、描画可能:? Drawableの

    オーバーライドのonCreate楽しい(savedInstanceState:バンドル
    { 
        スーパー.onCreate(savedInstanceState)
        setContentViewを(R.layout.activity_main)
        インフレータよう = LayoutInflater.from(この@MainActivity)
         // 、リスト要素40のセットを作成アナログ用途に含む40 
        のために(0..39においてI 
        { 
            ヴァル・ラベル = 「」+  I
            ヴァル描画可能 = resources.getDrawable(R.mipmap.ic_launcher、NULL 
            のVal項目 = のDataItem(ラベル、描画可能)
            Items.Add(項目)
        } 
        // の総数によって占有コンピューティングアプリケーション画面
         // アプリケーションの数ができる場合割り切れるNUMBER_PER_SCREENは、除算の結果は、スクリーンの総数である
         // 割り切れない場合、スクリーンの総数は除算の結果と組み合わせなければならない。1 
        ScreenCountは= IF(items.size%のNUMBER_PER_SCREEN == 0)items.size / NUMBER_PER_SCREEN
          items.size / +。1 NUMBER_PER_SCREEN 
        スイッチャー = findViewById(R.id.viewSwitcher)
        スイッチャー.setFactory {
            //R.layout.slidelistviewコンポーネントが実際にGridViewの構成要素であるロード 
            ?その.inflate(R.layout.slidelistview、ようのInflater ヌル
        } 
        // ページがロードされたときに最初の画面を表示するには、 
        次の(ヌル
    } 

    ビュー:楽しい次(Vを
    { 
        IF(screenNo <ScreenCountは- 1 
        { 
            screenNo ++
             // 表示処理がアニメーション化さViewSwitcher成分 
            ?スイッチャー.setInAnimation(この、R.anim.slide_in_right)
             // 隠すViewSwitcher組立工程アニメーション 
            スイッチャーを?。 setOutAnimation(この、R.anim.slide_out_left)
             // コントロール次の画面は、GridViewの対応するアダプタが表示されます 
            GridViewのAS(スイッチャー?.NextView)を.adapter = アダプター
             //は、次の画面を表示するには右のボタンをクリックします
             // ジェスチャ検出を学習した後に、また、ジェスチャ検出によって実現次の画面表示させることができる 
            )スイッチャ.showNextを(?   // 
        } 
    } 

    ファンPREV(V:ビュー)
    { 
        IF(screenNo> 0 
        { 
            screenNo -
             // 表示処理アセンブリViewSwitcherアニメーション 
            スイッチャーを?.setInAnimation(この、android.R.anim.slide_in_left)
             // 隠しプロセスのコンポーネントをアニメーションViewSwitcher
            スイッチャー?.setOutAnimation(この、android.R.anim.slide_out_right)
             // コントロール次の画面が表示されますGridViewの対応アダプター 
            (スイッチャー?GridViewのAS .nextView).adapter = アダプタ
             // ディスプレイの左ボタンをクリックしてください画面には、当然のことながら、ジェスチャーを使用することができる
             // ジェスチャ検出を学習した後、また、ジェスチャ検出を介して表示画面上に実装することができる 
            スイッチャー?.showPrevious()   // 
        } 
    } 
}
メインプログラム
<?のXmlバージョン= "1.0"エンコード= "UTF-8" ?> 
< SETののxmlns:アンドロイド= "http://schemas.android.com/apk/res/android" > 
    <! - セット左から引きずり出さアニメーション
    アンドロイド:期間は、アニメーションの継続時間を指定します。 - > 
    < 翻訳
         アンドロイド:fromXDelta = "0" 
        アンドロイド:toXDelta = " - 100%P" 
        のandroid:期間= "アンドロイド@:整数/ config_mediumAnimTimeを"  /> 
</ SET >
左側のスライドアニメーション
<?のXmlバージョン= "1.0"エンコード= "UTF-8" ?> 
< SETののxmlns:アンドロイドは= "http://schemas.android.com/apk/res/android" > 
    <! - セットは右ドラッグから来てアニメーション
    アンドロイド:期間は、アニメーションの継続時間を指定します   。 - > 
    < 翻訳
         アンドロイド:fromXDelta = "100%P" 
        のAndroid:toXDelta = "0" 
        のandroid:期間= "アンドロイド@:整数/ config_mediumAnimTime"  /> 
</ SET >
右スライドアニメーション

 

おすすめ

転載: www.cnblogs.com/superxuezhazha/p/11519352.html