第一步MainActivity布局XML
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/main_rel"
>
<androidx.viewpager.widget.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/splace_vp"
/>
<TextView
android:layout_width="@dimen/dp_10"
android:layout_height="@dimen/dp_10"
android:background="@drawable/pop_hei_kuang"
android:layout_alignParentBottom="true"
android:layout_marginLeft="@dimen/dp_160"
android:layout_marginBottom="@dimen/dp_100"
android:id="@+id/splace_text1"
/>
<TextView
android:layout_width="@dimen/dp_10"
android:layout_height="@dimen/dp_10"
android:background="@drawable/pop_hei_kuang"
android:layout_alignParentBottom="true"
android:layout_marginLeft="@dimen/dp_180"
android:layout_marginBottom="@dimen/dp_100"
android:id="@+id/splace_text2"
/>
<TextView
android:layout_width="@dimen/dp_10"
android:layout_height="@dimen/dp_10"
android:background="@drawable/pop_hei_kuang"
android:layout_alignParentBottom="true"
android:layout_marginLeft="@dimen/dp_200"
android:layout_marginBottom="@dimen/dp_100"
android:id="@+id/splace_text3"
/>
</RelativeLayout>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<stroke android:width="1dp" android:color="@color/black"/>
<corners android:radius="@dimen/dp_720"/>
</shape>
第二步Activity详解
private void initShouYe() {
View view1 = View.inflate(this, R.layout.activity_viewpage_buju1, null);
View view2 = View.inflate(this, R.layout.activity_viewpage_buju2, null);
View view3 = View.inflate(this, R.layout.activity_viewpage_buju3, null);
ArrayList<View> views = new ArrayList<>();
views.add(view1);
views.add(view2);
views.add(view3);
button = view3.findViewById(R.id.buju3_btn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
timerTask.cancel();
mMainRel.setVisibility(View.GONE);
}
});
mSplaceVp.setAdapter(new PagerAdapter() {
@Override
public int getCount() {
return views.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
View view = views.get(position);
container.addView(view);
return view;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
//super.destroyItem(container, position, object);
container.removeView(views.get(position));
}
});
final Boolean[] b = {false};
mSplaceVp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@SuppressLint("ResourceAsColor")
@Override
public void onPageSelected(int position) {
if (position == 0) {
mSplaceText1.setBackgroundColor(getResources().getColor(R.color.red));
mSplaceText1.setBackgroundColor(getResources().getColor(R.color.white));
mSplaceText1.setBackgroundColor(getResources().getColor(R.color.white));
} else if (position == 1) {
mSplaceText1.setBackgroundColor(getResources().getColor(R.color.white)); mSplaceText1.setBackgroundColor(getResources().getColor(R.color.red));
mSplaceText1.setBackgroundColor(getResources().getColor(R.color.white));
if (b[0]){
timerTask.cancel();
button.setText(3+"s");
time = 2;
}
} else if (position == 2) {
mSplaceText1.setBackgroundColor(getResources().getColor(R.color.white)); mSplaceText1.setBackgroundColor(getResources().getColor(R.color.white)); mSplaceText1.setBackgroundColor(getResources().getColor(R.color.red));
b[0] = true;
timer = new Timer();
timerTask = new TimerTask() {
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.sendEmptyMessage(time);
}
};
timer.schedule(timerTask, 1000, 1000);
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}