09-04、05 ViewPager
来源:互联网 发布:linux 驱动编写 编辑:程序博客网 时间:2024/05/16 03:23
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: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" > <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_height="match_parent" android:layout_width="match_parent"> <!-- 条状显示,可加入文字--> <android.support.v4.view.PagerTabStrip android:id="@+id/pagertab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top" ></android.support.v4.view.PagerTabStrip> </android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/linerlayout_Continer" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal" android:layout_alignParentBottom="true" android:layout_marginBottom="20dp"> </LinearLayout></RelativeLayout>
viewpager1
<?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:id="@+id/imageview" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@mipmap/air"/></LinearLayout>
viewpager2
<?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" android:gravity="center"> <TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我是第二个界面"/></LinearLayout>
viewpager3
<?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" android:gravity="center"> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我是第三个界面"/></LinearLayout>
class文件 MyPagerAdapter
package com.example.administrator.myviewpager.adapter;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.Toast;import com.example.administrator.myviewpager.R;import java.util.List;/** * Created by Administrator on 2015/9/1. */public class MyPagerAdapter extends PagerAdapter{ private List<View> views; private String[] titles={"页面一","页面二","页面三"}; //在顶部条状显示 @Override public CharSequence getPageTitle(int position) { return titles[position%titles.length];//获取处在第几个位置 } public MyPagerAdapter( List<View> views){ this.views=views; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public void destroyItem(ViewGroup container, int position, Object object) {// container.removeView(views.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { final View view=views.get(position%views.size()); if(view.getParent()!=null){ container.removeView(view); } container.addView(view); if(position%views.size()==2){//获取处在第几个位置 Button button= (Button) view.findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(view.getContext(),"点击了这个按钮",Toast.LENGTH_SHORT).show(); } }); } return views.get(position%views.size());//获取处在第几个位置 } @Override public boolean isViewFromObject(View view, Object object) { return view==object; }}
MainActivity
package com.example.administrator.myviewpager;import android.graphics.Color;import android.support.v4.view.PagerTabStrip;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.Gravity;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 android.widget.TextView;import com.example.administrator.myviewpager.adapter.MyPagerAdapter;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { private ViewPager mViewPager; private List<View> views; private LayoutInflater mInflater; private LinearLayout mLinearLayoutContiner; private List<ImageView> mPoints; private PagerTabStrip mPagerTab; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViewPager(); } private void initViewPager() { mViewPager= (ViewPager) findViewById(R.id.viewpager); mLinearLayoutContiner= (LinearLayout) findViewById(R.id.linerlayout_Continer); //条状显示,可加入文字 mPagerTab= (PagerTabStrip) findViewById(R.id.pagertab); mPagerTab.setBackgroundColor(Color.LTGRAY);//设置背景颜色 mPagerTab.setTabIndicatorColor(Color.RED);//设置表示当前界面下划线的颜色 mPagerTab.setTextColor(Color.GREEN);//设置字体颜色 mPagerTab.setDrawFullUnderline(true);//显示PagerTabStrip整体下方的线 views=new ArrayList<>(); mInflater=getLayoutInflater(); View view1=mInflater.inflate(R.layout.viewpager1,null); View view2=mInflater.inflate(R.layout.viewpager2,null); View view3=mInflater.inflate(R.layout.viewpager3,null); views.add(view1); views.add(view2); views.add(view3); mPoints=new ArrayList<>();//将所有点图标的图片添加到一个list中 for (int i = 0; i <3 ; i++) { ImageView iv=new ImageView(this);//图片初始化 //设置图片的宽和高 iv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); iv.setImageResource(R.mipmap.backgroud_gray);//添加图片 //设置图片之间的间隔// iv.setLeft(10);// iv.setRight(10);// iv.setTop(10);// iv.setBottom(10);// iv.layout(10,10,10,10); mPoints.add(iv);// mLinearLayoutContiner.addView(iv); } mPoints.get(0).setImageResource(R.mipmap.background_green);//最初的界面点图标显示为绿色 MyPagerAdapter myPagerAdapter=new MyPagerAdapter(views); mViewPager.setAdapter(myPagerAdapter); mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for(ImageView iv:mPoints){ iv.setImageResource(R.mipmap.backgroud_gray);//将所有的点设为灰色 } mPoints.get(position%views.size()).setImageResource(R.mipmap.background_green);//将当前界面的点设为绿色 } @Override public void onPageScrollStateChanged(int state) { } }); mViewPager.setCurrentItem(Integer.MAX_VALUE/2-Integer.MAX_VALUE/2%views.size());//使得最初的界面处于第一张的位置,实现循环 } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}![这里写图片描述](http://img.blog.csdn.net/20150906202711603)![这里写图片描述](http://img.blog.csdn.net/20150906202727030)![这里写图片描述](http://img.blog.csdn.net/20150906202739749)
0 0
- 09-04、05 ViewPager
- Android(16.12.09):ViewPager
- Viewpager
- ViewPager
- ViewPager
- ViewPager
- ViewPager
- ViewPager
- viewpager
- ViewPager
- ViewPager
- ViewPager
- Viewpager
- viewpager
- ViewPager
- ViewPager
- ViewPager
- viewpager
- win10设置开机自动输入密码
- eclipse格式化代码快捷键无效与搜狗输入法莫名变为繁体
- Linux下安装与配置MySQL
- HD 5428 The Factor
- 使用mantis测试缺陷步骤
- 09-04、05 ViewPager
- Fragment
- C++基础2-类
- mybatis实现的增删改查例子
- 第一次蹦极
- backtrack环境的基本配置之网络配置基本命令
- 38Count and Say
- Thread + Handle 解决子线程更新UI
- 是时候做点什么了