利用ViewPager和CiecleIndicator实现App引导滑动页
来源:互联网 发布:jq 判断数组是否包含 编辑:程序博客网 时间:2024/06/05 12:05
1.主界面:
public class GuideActivity extends Activity {
CircleIndicator indicator;
ViewPager vp;
ArrayList<ImageView> aList;
GuideAdapter guideAdapter;
int img[]={
R.mipmap.zhubeijing,
R.mipmap.zhuti2,
R.mipmap.zhuti1,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_guide);
vp = (ViewPager) findViewById(R.id.vp);
indicator = (CircleIndicator) findViewById(R.id.indicator);
guideAdapter = new GuideAdapter(initData());
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
vp.setAdapter(guideAdapter);
indicator.setViewPager(vp);
vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (position == aList.size() - 1) {
aList.get(position).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(GuideActivity.this, SlidingPaneLayoutActivity.class);
startActivity(intent);
//若果不要该界面销毁界面
finish();
}
});
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
public ArrayList<ImageView> initData(){
aList = new ArrayList<>();
for(int i=0;i<img.length;i++){
ImageView imageView = (ImageView) LayoutInflater.from(this).inflate(R.layout.tmp_layout,null,false);
// ImageView imageView = new ImageView(this);
imageView.setImageResource(img[i]);
aList.add(imageView);
}
return aList;
}
}
2.界面布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ccc"
>
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
<me.relex.circleindicator.CircleIndicator
android:id="@+id/indicator"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="40dp"
app:ci_height="7dp"
app:ci_width="7dp"
app:ci_margin="20dp"
app:ci_drawable="@color/colorAccent"
/>
</RelativeLayout>
3.适配器:
public class GuideAdapter extends PagerAdapter {
ArrayList<ImageView> viewList;
public GuideAdapter() {
}
public GuideAdapter(ArrayList<ImageView> viewList) {
this.viewList = viewList;
}
@Override
public int getCount() {
return viewList.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
//获取viewpager里面的图片的下标
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(viewList.get(position));
return viewList.get(position);
}
//滑动到第三页时再滑动就滑不动了,销毁前面滑动的页
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(viewList.get(position));
}
}
4.在values内设置attrs.xml样式,用于布局调用
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 设置导航页面下面小点style-->
<declare-styleable name="CircleIndicator">
<attr name="ci_height" format="dimension"/>
<attr name="ci_width" format="dimension"/>
<attr name="ci_margin" format="dimension"/>
<attr name="ci_drawable" format="reference"/>
<attr name="ci_drawable_unselected" format="reference"/>
</declare-styleable>
</resources>
public class GuideActivity extends Activity {
CircleIndicator indicator;
ViewPager vp;
ArrayList<ImageView> aList;
GuideAdapter guideAdapter;
int img[]={
R.mipmap.zhubeijing,
R.mipmap.zhuti2,
R.mipmap.zhuti1,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_guide);
vp = (ViewPager) findViewById(R.id.vp);
indicator = (CircleIndicator) findViewById(R.id.indicator);
guideAdapter = new GuideAdapter(initData());
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
vp.setAdapter(guideAdapter);
indicator.setViewPager(vp);
vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (position == aList.size() - 1) {
aList.get(position).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(GuideActivity.this, SlidingPaneLayoutActivity.class);
startActivity(intent);
//若果不要该界面销毁界面
finish();
}
});
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
public ArrayList<ImageView> initData(){
aList = new ArrayList<>();
for(int i=0;i<img.length;i++){
ImageView imageView = (ImageView) LayoutInflater.from(this).inflate(R.layout.tmp_layout,null,false);
// ImageView imageView = new ImageView(this);
imageView.setImageResource(img[i]);
aList.add(imageView);
}
return aList;
}
}
2.界面布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ccc"
>
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
<me.relex.circleindicator.CircleIndicator
android:id="@+id/indicator"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="40dp"
app:ci_height="7dp"
app:ci_width="7dp"
app:ci_margin="20dp"
app:ci_drawable="@color/colorAccent"
/>
</RelativeLayout>
3.适配器:
public class GuideAdapter extends PagerAdapter {
ArrayList<ImageView> viewList;
public GuideAdapter() {
}
public GuideAdapter(ArrayList<ImageView> viewList) {
this.viewList = viewList;
}
@Override
public int getCount() {
return viewList.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
//获取viewpager里面的图片的下标
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(viewList.get(position));
return viewList.get(position);
}
//滑动到第三页时再滑动就滑不动了,销毁前面滑动的页
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(viewList.get(position));
}
}
4.在values内设置attrs.xml样式,用于布局调用
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 设置导航页面下面小点style-->
<declare-styleable name="CircleIndicator">
<attr name="ci_height" format="dimension"/>
<attr name="ci_width" format="dimension"/>
<attr name="ci_margin" format="dimension"/>
<attr name="ci_drawable" format="reference"/>
<attr name="ci_drawable_unselected" format="reference"/>
</declare-styleable>
</resources>
0 0
- 利用ViewPager和CiecleIndicator实现App引导滑动页
- ViewPager实现滑动引导页
- 利用viewpager实现引导页
- APP引导页滑动实现
- 实践--ViewPager实现App引导页
- 利用ViewPager实现启动引导页
- 利用Viewpager实现引导界面
- Android实现APP引导页四种简单视图滑动切换效果ViewPager
- ViewPager实现移折通左右滑动引导界面
- ViewPager+app新手引导页
- ViewPager实现引导页
- ViewPager实现引导页
- ViewPager实现引导页
- ViewPager 实现引导页
- ViewPager实现引导页
- ViewPager实现引导页
- Android程序:使用ViewPager实现app引导页效果
- 【Android】利用ViewPager控件实现软件启动引导页
- JAXB 实现bean与xml之间的转换
- hibernate_sessionn核心方法
- 运行到手机的app版本号与代码中的版本不一致
- 兼容viewpager中嵌套的viewpager自定义控件
- Java百分比转换问题
- 利用ViewPager和CiecleIndicator实现App引导滑动页
- 一题多解(三)—— Python 字符串的拼接
- Java加密技术(十二)——*.PFX(*.p12)&个人信息交换文件
- java常用到的知识点总结之集合、泛型
- Ubuntu更换更新源
- 【剑指offer】第一个只出现一次的字符
- Xamarin部署时提示DeviceSdkVersion的错误
- 延吉医保和养老保险电话
- 禁止input文本框输入实现属性