2016-10-05 11 views
1

RelativeLayoutには3つのTexViewがあります。左または右にスワイプすると背景色がRelativeLayout(Relativelayout内の他のすべてのビューは同じです)の変更が必要です。左または右にスワイプすると背景色が変わります

私はViewPagerで試してみましたが、私はwant.iにGIFのスワイプアニメーションを添付しました。どんな助けもありがとう。ありがとう!

//some code 
setContentView(R.layout.activity_main); 
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); 
     mViewPager = (ViewPager) findViewById(R.id.pager); 
     mViewPager.setAdapter(mSectionsPagerAdapter); 
mViewPager.setOnPageChangeListener(new CustomOnPageChangeListener()); 
     setUpColors(); 
} 
private void setUpColors(){ 

     Integer color1 = Color.BLACK; 
     Integer color2 = Color.BLUE; 
     Integer color3 = Color.GREEN; 

     Integer[] colors_temp = {color1, color2, color3}; 
     colors = colors_temp; 

    } 
public class SectionsPagerAdapter extends FragmentPagerAdapter { 

     public SectionsPagerAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      return PlaceholderFragment.newInstance(position + 1); 
     } 

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

    public static class PlaceholderFragment extends Fragment { 
     /** 
     * The fragment argument representing the section number for this 
     * fragment. 
     */ 
     private static final String ARG_SECTION_NUMBER = "section_number"; 

     /** 
     * Returns a new instance of this fragment for the given section 
     * number. 
     */ 
     public static PlaceholderFragment newInstance(int sectionNumber) { 
      PlaceholderFragment fragment = new PlaceholderFragment(); 
      Bundle args = new Bundle(); 
      args.putInt(ARG_SECTION_NUMBER, sectionNumber); 
      fragment.setArguments(args); 
      return fragment; 
     } 

     public PlaceholderFragment() { 
     } 
    } 

    public class CustomOnPageChangeListener implements ViewPager.OnPageChangeListener { 

     @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

      if(position < (mSectionsPagerAdapter.getCount() -1) && position < (colors.length - 1)) { 

       mViewPager.setBackgroundColor((Integer) argbEvaluator.evaluate(positionOffset, colors[position], colors[position + 1])); 

      } else { 

       // the last page color 
       mViewPager.setBackgroundColor(colors[colors.length - 1]); 

      } 

     } 

     @Override 
     public void onPageSelected(int position) { 
     } 

     @Override 
     public void onPageScrollStateChanged(int i) { 
     } 

    } 

をスワイプするときの色をそのフェードを離れてスワイプするが、私はattached.currently GIFなどのアニメーションを使用したときに、それは背景の色を変更します。ここでは

は、私がこれまで試したコードです。

+0

viewpagerが働かなければならないheplことを願っています!しかし、あなたはviewpagerで同じレイアウトに時計を置くべきです。したがって、ビューページには背景色しか含まれません。 – uguboz

+0

ああ、私は間違ってそれをしなければなりません。あなたはコードを提供できますか?ありがとう –

+0

ビューページであなたの試行の関連コードを追加してください – petey

答えて

0

viewPageとRelativeLayoutのいくつかのメソッドを使用する必要があります。

switch(mView.getCurrentItem()){ 
case 0: mRelativeLayout.setBackgroundColor(Color.Red);break; 
case 1: mRelativeLayout.setBackgroundColor(Color.Blue);break; 
case 2: mRelativeLayout.setBackgroundColor(Color.Black);break; 
} 

私は、これは

関連する問題