Android中ViewPager在底部生成小圆点
来源:互联网 发布:php编写九九乘法表for 编辑:程序博客网 时间:2024/05/17 06:11
首先在XML文件中创建一个ViewPager
<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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> //这里调用javaV4包需要全名调用 <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/viewpager_linerlayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_alignParentBottom="true" android:gravity="center" android:layout_marginBottom="30dp"> </LinearLayout></RelativeLayout>
引用V4包的时候要全名调用,另外在ViewPager下边定义了一个LinearLayout用来放置页面焦点的小圆点。
利用XML生成三个带图片的简单界面
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@mipmap/one"/></LinearLayout><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@mipmap/two"/></LinearLayout><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@mipmap/three"/></LinearLayout>
接下来定义一个ViewPager的适配器ViewPagerAdapter类
package com.example.administrator.myviewpagertest.adapter;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import java.util.List;/** * Created by Administrator on 2015/9/1. */public class ViewPagerAdapter extends PagerAdapter { private List<View> mViews; public ViewPagerAdapter(List<View> mViews) { this.mViews = mViews; } @Override public int getCount() { //返回一个ViewPager中页面的数量 return mViews.size(); } @Override public void destroyItem(ViewGroup container, int position, Object object) { //当某个页面被划出屏幕时,销毁 View view=mViews.get(position); container.removeView(view); } @Override public Object instantiateItem(ViewGroup container, int position) { //当某个页面被划进屏幕时,显示该页面 container.addView(mViews.get(position)); return mViews.get(position); } @Override public boolean isViewFromObject(View view, Object object) { return view==object; }}
在MAinActivity中将生成的三个界面加入到ViewPager中,并动态添加底部小圆点。
package com.example.administrator.myviewpagertest;import android.app.ActionBar;import android.app.Activity;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.LinearLayout;import com.example.administrator.myviewpagertest.adapter.ViewPagerAdapter;import java.util.ArrayList;import java.util.List;public class MainActivity extends Activity { private ViewPager mViewPager;//声明ViewPager private LinearLayout mLinearLayout;//声明将来放置底部小圆点的LinearLayout private List<View> mViews;//ViewPager中放置的界面的集合 private List<ImageView> mDots;//底部小圆点的集合 private ViewPagerAdapter mAdapter;//ViewPager适配器 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mViewPager= (ViewPager) findViewById(R.id.viewpager); mLinearLayout= (LinearLayout) findViewById(R.id.viewpager_linerlayout); initView(); initDots(); mAdapter=new ViewPagerAdapter(mViews); mViewPager.setAdapter(mAdapter); mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int i=0;i<mViews.size();i++){ //将所有的圆点设置为为选中时候的图片 mDots.get(i).setImageResource(R.mipmap.dot_normal); } //将被选中的图片中的圆点设置为被选中的时候的图片 mDots.get(position).setImageResource(R.mipmap.dot_select); } @Override public void onPageScrollStateChanged(int state) { } }); } private void initDots() { mDots = new ArrayList<ImageView>();//底部圆点集合的初始化 for (int i=0;i<mViews.size();i++){//根据界面数量动态添加圆点 ImageView imageView=new ImageView(this); imageView.setLayoutParams(new ViewGroup.LayoutParams(35,35));//设置ImageView的宽度和高度 imageView.setPadding(5,5,5,5);//设置圆点的Padding,与周围的距离 imageView.setImageResource(R.mipmap.dot_normal);//设置图片 mDots.add(imageView);//将该图片添加到圆点集合中 mLinearLayout.addView(imageView);//将图片添加到LinearLayout中 } mDots.get(0).setImageResource(R.mipmap.dot_select); } private void initView() { mViews=new ArrayList<>(); LayoutInflater inflater=getLayoutInflater(); View view1=inflater.inflate(R.layout.activity_viewpager1, null); View view2=inflater.inflate(R.layout.activity_viewpager2,null); View view3=inflater.inflate(R.layout.activity_viewpager3,null); mViews.add(view1); mViews.add(view2); mViews.add(view3); }}
1 0
- Android中ViewPager在底部生成小圆点
- Android ViewPager无限循环实现底部小圆点动态滑动
- Android ViewPager中动态生成底部圆点
- viewpager生成动态小圆点
- ViewPager与底部小圆点的联动
- viewPager的无限轮播加底部小圆点
- Android ViewPager 小圆点指示器
- 利用ViewPager实现引导界面+底部小圆点
- ViewPager无限循环+底部小圆点动态滑动
- Android ViewPager实现图片 小圆点切换
- Android ViewPager 图片无限滑动和根据图片数量自动生成的小圆点
- ViewPager加小圆点
- ViewPager+小圆点
- viewpager加小圆点
- viewpager+小圆点
- viewpager+小圆点
- viewpager画小圆点
- viewPager小圆点
- SOAPUI系列13- SOAPUI 测试Http 协义
- php根据时间戳获取周几
- HTML5之FileReader的使用
- iOS runtime学习
- 我是菜鸟:Executor框架
- Android中ViewPager在底部生成小圆点
- 喜欢上了一个芝迷
- Android xml 布局
- PCB Layout中的走线策略
- PL/SQL Developer如何连接64位的Oracle图解
- Linux Shell代理设置
- windows下Google Protocol Buffer 编译安装(vs)教程
- SOAPUI系列14- SOAPUI 数据生成器组件使用方法
- 1.1判断一个字符串中的字符是否唯一