Android中轮播图的实现 .
在Android中想要实现轮播图,会用到ViewPager和其子控件PagerTabStrip(标题栏)
步骤:
1.将View视图添加进集合中去 创建数据源Adapter 并实现其中的四个方法
a.getCount() 获取数据源的大小
b.
isViewFromObject() 判断当前的View是否是对对象返回
c.
instantiateItem() 初始换页面
d.
destroyItem() 销毁页面
public
class MyActivity extends Activity{
ViewPager viewPager;
View view_a,view_b,view_c;
List<View> viewList;
PagerTabStrip pts;
ArrayList<String>arrayList_pts;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
pts = (PagerTabStrip) findViewById(R.id.pts);
pts.setBackgroundColor(Color.parseColor("#FF8EFF"));
pts.setTabIndicatorColor(Color.parseColor("#00FFFF"));
viewPager = (ViewPager) findViewById(R.id.vp_activity);
LayoutInflater inflater = LayoutInflater.from(this);
view_a = inflater.inflate(R.layout.activity_one,null);
view_b = inflater.inflate(R.layout.activity_two,null);
view_c = inflater.inflate(R.layout.activity_three,null);
button = (Button) view_c.findViewById(R.id.but_three_a);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent1 = new Intent();
intent1.setClass(MyActivity.this,MyActivity_Button.class);
startActivity(intent1);
}
});
viewList = new ArrayList<View>();
viewList.add(view_a);
viewList.add(view_b);
viewList.add(view_c);
arrayList_pts = new ArrayList<>();
arrayList_pts.add("第一页");
arrayList_pts.add("第二页");
arrayList_pts.add("第三页");
PagerAdapter pagerAdapter = new PagerAdapter() {
@Override
public int getCount() {
return viewList.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@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));
}
@Override
public CharSequence getPageTitle(int position) {
return arrayList_pts.get(position);
}
};
viewPager.setAdapter(pagerAdapter);
/**ViewPager的监听事件**/
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
/**滑动时调用*/
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
/**停止时调用**/
@Override
public void onPageSelected(int position) {
}
/**滑动状态改变的时候调用*/
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
}
在其中添加了ViewPager的子控件PagerTabStrip来显示页数,随页面切换来改变,最后一夜的Button是跳转到新的页面。
至于其自动的滑动还没实现,主要是依靠线程sleep来实现
下面是一个粗糙的实现图
- 点赞 1b5d8
- 收藏
- 分享
- 文章举报
- Android.mk的基本语法
- android基础概况
- android服务
- android录音和播放视频
- android广播机制
- Android 支付宝接入流程
- Android EditText
- Android Material Design 之TextInputLayout TextInputEditText
- Android Material Design 之TabLayout
- Android MaterialDesign 之 FloatingActionButton
- Android Material Design 之 DrawLayout
- Android studio抓取app应用日志
- Android 夜间模式的实现
- Android中会引起ANR的情况
- Android 底部地址选择弹框
- vim调试android项目脚本完成
- android 两端对齐
- 就大神帮忙看一下Android自动挂断电话功能,测试了好久,就是不能自动挂断。
- android图标尺寸
- 面试Android实习生岗位的一些问题