ViewPager加强版
来源:互联网 发布:安卓7.0运行java模拟器 编辑:程序博客网 时间:2024/05/01 06:31
大家好,今晚我给大家分享的是ViewPagerjian加强版,之前介绍的ViewPager只是简单的一些操作,没有涉及到高深的一些知识,这讲我给大家增加重头戏。在ViewPager增加移动点,翻页改变文字内容,实现无限重复翻页等功能。说了那么多,相信大家非常感兴趣,。恩,让我一起走上探索道路。
1.res/layout文件
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/mViewPager"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="#22ff0000" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_below="@id/mViewPager"
android:background="#6F7069"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/context_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:textSize="23sp" />
//引用布局dot_image
<include layout="@layout/dot_image" />
</LinearLayout>
</RlativeLayout>
dot_image.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:id="@+id/llayout" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/dot_show"
android:enabled="false" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/dot_show" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/dot_show" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/dot_show" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/dot_show" />
</LinearLayout>
2.MainActivity.java
public class MainActivity extends Activity{
//这里我没有采用的传统的初始化,finViewById,我用到的是框架Xutil的ViewUtil,可以简单代码,方便简洁初始化,和赋值,这就是框架带给我们的好处
@ViewInject(R.id.context_tv)
private TextView contextTv;
@ViewInject(R.id.llayout)
private LinearLayout llayout;
//上一个点
Prvate int preDotPosition;
//内容数组
private String[] contentArray={"巩俐不低俗,我就不能低俗","朴树又回来了,再唱经典老歌引百万人同唱啊","揭秘北京电影如何升级","乐视网TV版大放送","热血屌丝的反杀"};
//注解ViewPager
@ViewInject(R.id.mViewPager)
private ViewPager mViewPager;
//List集合,类型是ImageView
private List<ImageView> mPagerList;
private Context context;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//取标题
reqindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
//注解到这个Activity
VeiwUtilject(this);
context = this;
//显示数组第一内容
contextTv.setText(contentArray[0]);
// 创建子页面
initPager();
//初始化列表
PagerList new ArrayList<ImageView>();
//展示数据,好比适配器
mViewPager.setAdapter(new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
@Override
public int getCount() {
//这里我把列表集合个数设置为100,实现重复翻页,当你把集合个数写的小的话,就不能实现翻页,因为就只有那几个页面,就不能翻页
return 100;
}
//销毁方法
public void destroyItem(ViewGroup container, int position,
Object object) {
// position%mPagerList.size表示页面的索引号,Position是1到100数字,当它除以mPagerList.size()也就是5,余数是1,2,3,4,5,
//我们就可以根据这个获取View视图。这里是ImageView
View view=mPagerList.get(position%mPagerList.size());
container.removeView(view);
//没有返回值说明这里不用ImageView
}
//实例化方法,这里是添加View.
public Object instantiateItem(ViewGroup container, int position) {
View view=mPagerList.get(position%mPagerList.size());
container.addView(view);
//返回视图
return view;
}
});
//页面改变监听
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
//改变翻页的文字
contextTv.setText(contentArray[position%mPagerList.size()]);
//得到LinearLayout的子控件,TextView的dot点,设置显示颜色点
llayout.getChildAt(position%mPagerList.size()).setEnabled(false);
//得到上一个Dot,设置为无颜色点
llayout.getChildAt(preDotPosition).setEnabled(true);
//得到不断更新的索引号
preDotPosition=position%mPagerList.size();
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
}
//创建子页面,并添加List集合里
private void initPager() {
ImageView image1 = new ImageView(context);
image1.setBackgroundResource(R.drawable.a);
mPagerList.add(image1);
ImageView image2 = new ImageView(context);
image2.setBackgroundResource(R.drawable.b);
mPagerList.add(image2);
ImageView image3 = new ImageView(context);
image3.setBackgroundResource(R.drawable.c);
mPagerList.add(image3);
ImageView image4 = new ImageView(context);
image4.setBackgroundResource(R.drawable.d);
mPagerList.add(image4);
ImageView image5 = new ImageView(context);
image5.setBackgroundResource(R.drawable.e);
mPagerList.add(image5);
}
这讲就到这里了,相信大家看有收获,这个知识点也是非常用到的,美好的一天即将开始,晚安。
- ViewPager加强版
- 加强版viewpager与fragment的实现
- Android照片墙加强版,使用ViewPager实现画廊效果
- Android照片墙加强版,使用ViewPager实现画廊效果
- Android照片墙加强版,使用ViewPager实现画廊效果
- Android照片墙加强版,使用ViewPager实现画廊效果
- Android照片墙加强版,使用ViewPager实现画廊效果
- Android照片墙加强版,使用ViewPager实现画廊效果
- Android照片墙加强版,使用ViewPager实现画廊效果
- Android照片墙加强版,使用ViewPager实现画廊效果
- Android 照片墙加强版,使用ViewPager实现画廊效果
- Android照片墙加强版,使用ViewPager实现画廊效果
- Android照片墙加强版,使用ViewPager实现画廊效果
- Android照片墙加强版,使用ViewPager实现画廊效果
- 加强版 X5
- Edit控件加强版
- 信封问题加强版
- LIS加强版
- 一道关于:ArrayList、Vector、LinkedList的存储性能和特性 的面试题
- Android之项目推荐使用的第三方库
- Android Studio 不能打开出现 internal error
- lintcode-第k个排列-388
- uva10246最短路 + 枚举 + 数组记忆
- ViewPager加强版
- 格雷码计数器
- IG&IC&Pra 安装教程 DEB包导入方式安装 (需要电脑联接手机)
- freopen的使用
- 文章标题
- [LinkerScript.17] SECTION命令: Input Section Description
- hdu 5311 Hidden String
- 北大ACM1127——Jack Straws
- assert和参数判断