ViewPagerはウェルカムインタフェースの特効をロードします
3327 ワード
<画像が少し大きいようで、適切な制作効果のツールが見つからないため、これは静的な画像では効果が見えません.大まかな効果は、上図のような効果は雲が現れたいので、上の2人のカップルの後ろに現れて左から滑り込んできて、2枚の画像は同じインタフェースにありますが、確かに非同期で表示されています.>
1.ViewPagerの使い方
ViewPagerの効果は携帯電話のLauncherインタフェースの効果と似ていて、左右にスライドしてインタフェースを切り替える効果があります.通常、onPageChangedListenerイベントを実現して彼のスライドを監視する必要があります.
onPageChangedListenerでのメソッドの使い方を説明します.
2.PagerAdapterの使い方
各ViewPagerは、コードに示すように、スライドにデータの適合性を提供するためにPagerAdapterを必要とします.
本題に戻ると、私たちの効果はViewPagerとHorizontalScrollviewを組み合わせて使用することです.
レイアウトによってHorizontalScrollViewにスライドを提供するために必要なバックグラウンドと、ViewPagerにPagerAdapterを提供し、ViewPagerをHorizontalScrollViewに配置し、Viewpagerをスライドさせることでスライド中
HorizontalScrollViewはscrollToメソッドを呼び出し、クラウドが先に到着してからカップルが到着する非同期効果を達成します.
この効果は私はCSDNのcodeの中の1つのプロジェクトで発見したので、そのプロジェクトの名前を忘れていたので、リンクを提供して私のDemoソースコードをダウンロードしました.ソースコードはリンクをこすってください:クリックしてリンクを開きます
1.ViewPagerの使い方
ViewPagerの効果は携帯電話のLauncherインタフェースの効果と似ていて、左右にスライドしてインタフェースを切り替える効果があります.通常、onPageChangedListenerイベントを実現して彼のスライドを監視する必要があります.
onPageChangedListenerでのメソッドの使い方を説明します.
public class MainActivity extends Activity implements OnPageChangeListener {
public void onPageScrollStateChanged(int state) {
/**
*state
*state 0 1 2;
*0:
*1:
*2:
*/
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixel) {
/**
* :
* position: position
* positionoffset:
* positionOffsetPixel:
*/
}
@Override
public void onPageSelected(int position) {
/**
* ,position
*/
}
}
2.PagerAdapterの使い方
各ViewPagerは、コードに示すように、スライドにデータの適合性を提供するためにPagerAdapterを必要とします.
class MyAdapter extends PagerAdapter {
@Override
public int getCount() {
return 2;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
//
View view = LayoutInflater.from(_this).inflate(R.layout.pager_,
null);
LinearLayout layout = (LinearLayout) view
.findViewById(R.id.gallery_image_item_view);
if (position == 0) {
layout.removeAllViews();
}
if (position == 1) {
layout.removeAllViews();
View childView = LayoutInflater.from(_this).inflate(
R.layout.pager_layout, null);
layout.addView(childView);
}
((ViewPager) container).addView(view);
return view;
}
}
本題に戻ると、私たちの効果はViewPagerとHorizontalScrollviewを組み合わせて使用することです.
レイアウトによってHorizontalScrollViewにスライドを提供するために必要なバックグラウンドと、ViewPagerにPagerAdapterを提供し、ViewPagerをHorizontalScrollViewに配置し、Viewpagerをスライドさせることでスライド中
HorizontalScrollViewはscrollToメソッドを呼び出し、クラウドが先に到着してからカップルが到着する非同期効果を達成します.
// OnPageChangedListener
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixel) {
/**
* :
* position: position
* positionoffset:
* positionOffsetPixel:
*/
int total_page = adapter.getCount();
float layerRealOffset = easeIn(positionOffset, 0, 1, 1);
System.out.println("----layerRealOffset---" + layerRealOffset);
System.out.println("---positionOffset--- " + positionOffset);
float layerOffset = (float) ((float)(position + layerRealOffset / 2)*1.0/total_page);
int layerOffsetPositon = (int)(backgoundWidth*layerOffset);
mScrollView.scrollTo(layerOffsetPositon,0);
}
この効果は私はCSDNのcodeの中の1つのプロジェクトで発見したので、そのプロジェクトの名前を忘れていたので、リンクを提供して私のDemoソースコードをダウンロードしました.ソースコードはリンクをこすってください:クリックしてリンクを開きます