动画在 ViewPager 中滑动,图像发生变化
Animation slidin ViewPager with image that change
我会像这样创建一个滑块:
THIS
我很容易创建一个 activity 来执行此操作,我的问题是我无法为底部的图像(小圆圈)创建动画。我已经测试过了,但是速度很慢:
@Override
public Fragment getItem(int position) {
ScreenSlidePageFragment fragment = new ScreenSlidePageFragment();
Bundle args = new Bundle();
args.putInt("key", position);
fragment.setArguments(args);
switch (position){
case 0:
findViewById(R.id.btnFirstSlide).setVisibility(View.VISIBLE);
findViewById(R.id.btnSecondSlide).setVisibility(View.INVISIBLE);
findViewById(R.id.btnThirdSlide).setVisibility(View.INVISIBLE);
break;
case 1:
findViewById(R.id.btnFirstSlide).setVisibility(View.INVISIBLE);
findViewById(R.id.btnSecondSlide).setVisibility(View.VISIBLE);
findViewById(R.id.btnThirdSlide).setVisibility(View.INVISIBLE);
break;
case 2:
findViewById(R.id.btnFirstSlide).setVisibility(View.INVISIBLE);
findViewById(R.id.btnSecondSlide).setVisibility(View.INVISIBLE);
findViewById(R.id.btnThirdSlide).setVisibility(View.VISIBLE);
break;
}
return fragment;
}
什么是好的解决方案?
你看到了吗ViewPagerIndicator
: JakeWharton/ViewPagerIndicator
它易于使用,如:
在xml中:
<com.viewpagerindicator.CirclePageIndicator
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/indicator"
android:padding="20dip"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
app:centered="true"
app:fillColor="@color/ColorPrimary"
app:pageColor="@color/Transparent"
app:radius="7dp"
app:snap="false"
app:strokeColor="@color/White"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
在您的代码中:
circlePageIndicator=(CirclePageIndicator)findViewById(R.id.indicator);
circlePageIndicator.setViewPager(viewpager);
该库中有很多不同的指标,您可以尝试所有指标,然后选择您想要的任何指标。
只需将此行添加到您的 build.gradle
中:compile 'com.viewpagerindicator:library:2.4.1@aar'
我会像这样创建一个滑块: THIS
我很容易创建一个 activity 来执行此操作,我的问题是我无法为底部的图像(小圆圈)创建动画。我已经测试过了,但是速度很慢:
@Override
public Fragment getItem(int position) {
ScreenSlidePageFragment fragment = new ScreenSlidePageFragment();
Bundle args = new Bundle();
args.putInt("key", position);
fragment.setArguments(args);
switch (position){
case 0:
findViewById(R.id.btnFirstSlide).setVisibility(View.VISIBLE);
findViewById(R.id.btnSecondSlide).setVisibility(View.INVISIBLE);
findViewById(R.id.btnThirdSlide).setVisibility(View.INVISIBLE);
break;
case 1:
findViewById(R.id.btnFirstSlide).setVisibility(View.INVISIBLE);
findViewById(R.id.btnSecondSlide).setVisibility(View.VISIBLE);
findViewById(R.id.btnThirdSlide).setVisibility(View.INVISIBLE);
break;
case 2:
findViewById(R.id.btnFirstSlide).setVisibility(View.INVISIBLE);
findViewById(R.id.btnSecondSlide).setVisibility(View.INVISIBLE);
findViewById(R.id.btnThirdSlide).setVisibility(View.VISIBLE);
break;
}
return fragment;
}
什么是好的解决方案?
你看到了吗ViewPagerIndicator
: JakeWharton/ViewPagerIndicator
它易于使用,如:
在xml中:
<com.viewpagerindicator.CirclePageIndicator
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/indicator"
android:padding="20dip"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
app:centered="true"
app:fillColor="@color/ColorPrimary"
app:pageColor="@color/Transparent"
app:radius="7dp"
app:snap="false"
app:strokeColor="@color/White"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
在您的代码中:
circlePageIndicator=(CirclePageIndicator)findViewById(R.id.indicator);
circlePageIndicator.setViewPager(viewpager);
该库中有很多不同的指标,您可以尝试所有指标,然后选择您想要的任何指标。
只需将此行添加到您的 build.gradle
中:compile 'com.viewpagerindicator:library:2.4.1@aar'