1. 程式人生 > >使用ViewPager+GridView實現橫向滑動的效果(二)

使用ViewPager+GridView實現橫向滑動的效果(二)

            現在正是開始使用ViewPager+GridView方法實現橫向滑動效果;

                   

                  上面就是實現的效果,當然用手去滑動,是可以進行橫向滑動,到時候有興趣的可以把例子程式碼部署到手機中進行測試一下:

            實現該效果的方法,其實還是比較簡單的

           1:在佈局檔案中加入<android.support.v4.view.ViewPager
        android:paddingTop="250dip"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"        
        android:id="@+id/myviewpager"
        android:layout_weight="7"
        android:layout_gravity="center_vertical"
        android:clickable="true"
        android:focusable="true"
        />    引入ViewPager包

          2:然後創建出GridView把資料新增進去,

          3:使用ViewPager進行顯示

         接下去直接看程式碼直截了當

         MainActivity.java

  1. /** 
  2.  * 實現自定義ViewPager+GridView 
  3.  * @author jiangqq 
  4.  * @time 2013/07/17  17:55  
  5.  */
  6. publicclass MainActivity extends Activity {  
  7.     private MyViewPagerAdapter adapter;  
  8.     private
     List<GridView> mLists;  
  9.     private ViewPager mViewPager;  
  10.     private String[] mStrs = new String[] { "01""02""03""04""05""06",  
  11.             "07""08""09""10""11""12""13""14""15""16""17",  
  12.             "18""19""20""21""22""23""24""25""26""27""28",  
  13.             "29"
    "30""31""32""33""34""35""36""37""38""39",  
  14.             "40""41""42""43""44""45""46""47""48""49""50",  
  15.             "51""52""53""54""55""56""57""58""59""60" };  
  16.     privateint index = 0;  
  17.     @Override
  18.     protectedvoid onCreate(Bundle savedInstanceState) {  
  19.         super.onCreate(savedInstanceState);  
  20.         setContentView(R.layout.activity_main);  
  21.         init();  
  22.         mViewPager = (ViewPager) findViewById(R.id.myviewpager);  
  23.         mViewPager.setOnPageChangeListener(new MyOnPageChanger());  
  24.         adapter = new MyViewPagerAdapter(this, mLists);  
  25.         mViewPager.setAdapter(adapter);  
  26.     }  
  27.     publicvoid init() {  
  28.         finalint PageCount = (int) Math.ceil(mStrs.length / 28.0f);  
  29.         mLists = new ArrayList<GridView>();  
  30.         for (int i = 0; i < PageCount; i++) {  
  31.             GridView gv = new GridView(this);  
  32.             gv.setAdapter(new MyGridViewAdapter(this, mStrs, i));  
  33.             gv.setGravity(Gravity.CENTER);  
  34.             gv.setClickable(true);  
  35.             gv.setFocusable(true);  
  36.             gv.setNumColumns(7);  
  37.             gv.setOnItemClickListener(new OnItemClickListener() {  
  38.                 @Override
  39.                 publicvoid onItemClick(AdapterView<?> arg0, View arg1,  
  40.                         int arg2, long arg3) {  
  41.                     Toast.makeText(MainActivity.this,  
  42.                             "正在播放第" + mStrs[index*28+arg2] + "集",  
  43.                             Toast.LENGTH_SHORT).show();  
  44.                 }  
  45.             });  
  46.             mLists.add(gv);  
  47.         }  
  48.     }  
  49.     /** 
  50.      * ViewPager頁面選項卡進行切換時候的監聽器處理 
  51.      * @author jiangqingqing 
  52.      * 
  53.      */
  54.     class MyOnPageChanger implements OnPageChangeListener  
  55.     {  
  56.         @Override
  57.         publicvoid onPageScrollStateChanged(int arg0) {  
  58.         }  
  59.         @Override
  60.         publicvoid onPageScrolled(int arg0, float arg1, int arg2) {  
  61.         }  
  62.         @Override
  63.         publicvoid onPageSelected(int arg0) {  
  64.             index=arg0;  
  65.             Log.i("jiangqq""當前在第"+index+"頁");  
  66.         }  
  67.     }  
     MyViewPagerAdapter.java  ViewPager頁面介面卡
  1. /** 
  2.  * 實現ViewPager頁卡 
  3.  * @author jiangqq 
  4.  * 
  5.  */
  6. publicclass MyViewPagerAdapter extends PagerAdapter{  
  7.     private List<GridView> mLists;  
  8.     public MyViewPagerAdapter(Context context, List<GridView> array) {  
  9.         this.mLists=array;  
  10.     }  
  11.     @Override
  12.     publicint getCount() {  
  13.         return mLists.size();  
  14.     }  
  15.     @Override
  16.     publicboolean isViewFromObject(View arg0, Object arg1) {  
  17.         return arg0 == arg1;  
  18.     }  
  19.     @Override
  20.     public Object instantiateItem(View arg0, int arg1)  
  21.     {  
  22.         ((ViewPager) arg0).addView(mLists.get(arg1));  
  23.         return mLists.get(arg1);  
  24.     }  
  25.     @Override
  26.     publicvoid destroyItem(View arg0, int arg1, Object arg2)  
  27.     {  
  28.         ((ViewPager) arg0).removeView((View) arg2);  
  29.     }  
    GridView自定義介面卡
  1. publicclass MyGridViewAdapter extends BaseAdapter {  
  2.     private Context mContext;  
  3.     private List<String> mLists;  
  4.     publicstaticfinalint PAGE_SIZE = 28// 每一螢幕顯示28 Button
  5.     public MyGridViewAdapter(Context pContext, String[] pStrs, int page) {  
  6.         this.mContext = pContext;  
  7.         mLists = new ArrayList<String>();  
  8.         int i = page *PAGE_SIZE;  
  9.         int end = i +PAGE_SIZE;  
  10.         while ((i < pStrs.length) && (i < end)) {  
  11.             mLists.add(pStrs[i]);  
  12.             i++;  
  13.         }  
  14.     }  
  15.     @Override
  16.     publicint getCount() {  
  17.         return mLists.size();  
  18.     }  
  19.     @Override
  20.     public Object getItem(int position) {  
  21. 相關推薦

    使用ViewPager+GridView實現橫向滑動效果()

                現在正是開始使用ViewPager+GridView方法實現橫向滑動效果;                                       上面就是實現的效果,當然用手去滑動,是可以進行橫向滑動,到時候有興趣的可以把例子程式碼部署

    仿淘寶、京東、美團使用ViewPager+GridView實現左右滑動檢視更多分類導航功能

    文章說明 本文修改自開發者原始碼 微信公共號:China-dvlp 如果你有想學習的文章直接關注公眾號(開發者原始碼)回覆,我會整理徵稿。如果你有好的文章想和大家分享歡迎投稿,直接向我回覆文章連結即可。 概 述 仿淘寶、京東、美團使用ViewPage

    Android 實現橫向滑動效果

    首先我們要想象一下,一個水平滑動選擇器的樣子: 接下來是佈局的實現: 外層這裡我們使用普通的 HorizontalScrollView, scroll view的內部內容我們使用GridView來顯示多個像,並且這些物件是在一行顯示的。 12345678910111213141

    gridview 實現橫向分頁滑動效果的兩種實現方案

    方案一: 樓主在網上找的,能夠實現橫向滑動,但並沒有分頁的效果,樓主覺得簡單實用就一併貼出來了,下面看程式碼: DisplayMetrics dm; private void setValue() { int count = gridAdapte

    Android實現橫向滑動GridView

    因為專案中需要展示一組資料,要求為每頁最初展示五個資料,多出來的橫向滑動顯示,效果如下圖           效果就是這樣,這是一個答題介面,利用ViewPager實現,點選GridView中的選項跳轉到下一題,其中1,2,3,4,5或A,B,C,D,E的Answer按鈕為

    安卓實現橫向滑動的卡片效果

    最近專案上需要實現這樣效果的一個頁面,本來想找個現成的兩下搞定,但是問了半天度娘也沒招,索性自己琢磨琢磨(這裡邊也少不了同事的幫助),先把最終的效果圖貼上: 理論上講,其本質並不複雜,就是一個viewpager,但是第一次實現這樣的效果還是要花些時間的,具體的程式碼如下:

    viewpager+Fragment實現簡單滑動切換效果

    實現的是最簡單的viewpager+fragment進行的操作,當然你也可以實現像百度新聞那種聯動的的效果,加上一個展示分類的控制元件,叫什麼我忘了。。。。 先來看看效果 就是一個最基礎的形式。 下面是程式碼: 首先在佈局中進行viewpager控制

    Android使用GestureDetector實現手勢滑動效果

    void tco event else if rate method sta pro 手勢滑動 直接看實例: package com.example.gesturedetector; import android.os.Bundle; import

    unity3d實現廣告滑動效果

    ans cto 代碼 tag itween ngui logs lap image 新建了一個帶mask的prefab,加上代碼只需要將圖片prefab、按鈕prefab和所想添加的圖片 拖進去會自動生成按鈕,滑動速度可以隨意調time,滑動效果用itween實現的,所以需

    viewpager+gridView實現分頁

    效果圖: MainActivity: public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener{ private ViewGroup poi

    js實現輪播效果()

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style>

    asp.net gridview實現正在載入效果方案一

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//

    Android控制元件RecyclerView實現橫向滑動、瀑布流。

    在開發的過程中,我們經常使用ListView控制元件,但是ListView也有它的缺點,就是它不能夠左右滑動資料,執行效率不高; 所以我們可以使用更強大的控制元件RecyclerView,可以說它是一個增強版的ListView,Google推薦使用,那就簡單的

    Android 自定義 HorizontalScrollView 打造再多圖片(控制元件)也不怕 OOM 的橫向滑動效果

    自從Gallery被谷歌廢棄以後,Google推薦使用ViewPager和HorizontalScrollView來實現Gallery的效果。的確HorizontalScrollView可以實現Gallery的效果,但是HorizontalScrollView存在一個很大的問

    android 實現水波紋效果() 優化篇

      在我的上一篇文章中,初步介紹了一下水波紋的實現,確實也實現了,剛開始我表示很滿意啊,但是後來看了一下系統的實現效果,我開始發現有點不對勁;來對比一下: 這是優化前的效果 這是優化後的效果   區別看不出來?仔細看一下,系統的實現效果是

    RecyclerView 實現橫向滾動效果

    我相信很久以前,大家在談橫向圖片輪播是時候,優先會選擇具有HorizontalScrollView效果和ViewPager來做,不過自從Google大會之後,系統為我們提供了另一個控制元件RecyclerView。RecyclerView是listview之後的又一利器,它可

    viewPager + recycleView 實現左右滑動

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:ori

    Android GridView 實現橫向列表水平滾動

    有時候根據專案需要,使用可橫向滑動的GridView。僅以該文記錄一下,畢竟沒什麼技術含量。 1.主介面佈局程式碼:activity_main.xml。設定android:numColumns=”auto_fit”是因為可以不定項的新增子項。 <?

    BottomNavigationView + ViewPager + Fragment 實現左右滑動和下方導航欄

    轉載請註明出處:http://blog.csdn.net/htwhtw123/article/details/78441431 比較簡單的用BottomNavigationView 、 ViewPager 、 Fragment 實現下方導航欄與上方可翻頁頁面,

    我的Android成長之路(10)----利用recyclerView實現橫向滑動

    利用recyclerView實現橫向滑動。 下面是adapter: public class HengAdapter extends RecyclerView.Adapter<HengAdapter.MyViewHolder> implements View.