2015-05-14 55 views
0

我想爲我的Android應用程序添加一個簡介,告知用戶應用程序的工作方式。如果首選設置介紹將爲false,則此介紹將僅顯示。因此,在這個介紹中,將會有3個圖像,最後會有一個頁面,帶有一些文本和兩個按鈕,使用戶能夠通過登錄來訪問應用程序。每個圖像之間的變化將通過滑動動作(從右到左+,從左到右)進行。我能怎麼做 ?如何在Android中顯示圖像並通過向左/向右滑動來更改它?

+0

參見[Android的蜂房]本教程( http://www.androidhive.info/2013/09/android-fullscreen-image-slider-with-swipe-and-pinch-zoom-gestures/) – theapache64

+0

謝謝!你建議遵循創建全屏圖像滑塊代碼嗎?那麼最後一頁將使用Eclipse中的標準工具(如TextArea,Buttons等)製作的不僅僅是一個簡單的圖像呢? –

回答

2

這可以通過使用片段和ViewPager和FragmentPagerAdapter來完成。看看這個文檔:

FragmentPagerAdapter:http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html

ViewPager: http://developer.android.com/reference/android/support/v4/view/ViewPager.html

你可以有一個基於在ViewPager的ID實例化一個片段,該ID將指示顯示在圖像你的圖像片段。因此,對於三張圖像,您可以實例化一個新片段,該片段基於FragmentPagerAdapter中的當前頁面設置片段中的圖像。第二個片段可以是最後一個用於登錄按鈕和文本的位置。

例爲適配器在FragmentActivity(或AppCompatActivity)

public class MyAdapter extends FragmentPagerAdapter { 
     public MyAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     @Override 
     public int getCount() { 
      return NUM_ITEMS; 
     } 

     @Override 
     public Fragment getItem(int position) { 
      if(position < 3) 
       return ImageFragment.newInstance(position); 
      else 
       return new LoginFragment(); 
     } 
} 

實施例所述的用於在你介紹的各種圖像的圖像片段:

public static class ImageFragment extends Fragment{ 
    private int mPosition; 

    public ImageFragment(){ 
    } 

    public static ImageFragment newInstance(int pos){ 
     ImageFragment frag = new ImageFragment(); 
     Bundle args = new Bundle(); 
     args.putInt("pos", pos); 
     frag.setArguments(args); 
     return frag; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mPosition = getArguments().getInt("pos"); 

    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
      View v = inflater.inflate(R.layout.fragment_image, container, false); 
      ImageView backgroundView = (ImageView) v.findViewById(R.id.background_image); 
      switch(mPosition){ 
       case 0: 
        //set background view image 1 
       case 1: 
        //set background view image 2 
       default: 
        //set background view image 3 
      } 
      return v; 
    } 

} 
+0

謝謝!這很清楚。唯一的想法我不明白,我應該在哪些活動中編寫這段代碼。 –

+0

寫這是在你的啓動畫面活動(適配器和視圖頁面居住在那裏)你基本上換出你的視圖頁面中的片段 –

+0

什麼是R.layout.fragment_image和R.id.background_image? –

相關問題