安卓学习UI组件-ViewPager-选项卡

999~1{WPXV@OQYTO(~EFR5Q

@IVLE1SUMHX6639V6J{E9R5

V~X@8NOVPE[]LR0)OSD@%LX

B7S30V(8X~]$B_CEECD{​{KF

 

T~U%O(GE9[~O6EOJ8RVZUWY

DYNMM@(1@OJ`3FYVP97[H11

 

工程目录:

image

案例一:

imageimage

layout1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/pic16"
android:scaleType="centerCrop"
android:id="@+id/imageView" />
</LinearLayout>
后面layout2.xml,3,4布局一样,修改图片的引用就可

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<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="match_parent"

tools:context="com.example.administrator.myapplication.MainActivity">

<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center">

<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>

MainActivity.java

package com.example.administrator.myapplication;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;

import java.util.ArrayList;

//viewpager组件的使用
public class MainActivity extends Activity implements ViewPager.OnPageChangeListener {

private ViewPager viewPager;
private PagerTabStrip pagerTabStrip;

private String[] titles={"诺诺","绘梨衣","小怪兽","天羽羽斩"};
private ArrayList<View> views=new ArrayList<View>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager= (ViewPager) findViewById(R.id.viewpager);

pagerTabStrip= (PagerTabStrip) findViewById(R.id.pagertab);

initViews();
viewPager.setAdapter(new MyPagerAdapter());
}

private void initViews()
{
views.add(getLayoutInflater().inflate(R.layout.layout1,null));
views.add(getLayoutInflater().inflate(R.layout.layout2,null));
views.add(getLayoutInflater().inflate(R.layout.layout3,null));
views.add(getLayoutInflater().inflate(R.layout.layout4, null));

//
pagerTabStrip.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light));
pagerTabStrip.setTabIndicatorColor(getResources().getColor(android.R.color.holo_blue_bright));
pagerTabStrip.setTextColor(Color.WHITE);

//设置默认显示的选项卡
viewPager.setCurrentItem(2);
//注册事件
viewPager.setOnPageChangeListener(this);
}

@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {
//可以设置加载数据
Toast.makeText(this,"page---"+position,Toast.LENGTH_SHORT).show();
}

@Override
public void onPageScrollStateChanged(int state) {

}


//适配器
class MyPagerAdapter extends PagerAdapter {

@Override
public int getCount() {
return views.size();
}

//实例化选项卡
@Override
public Object instantiateItem(ViewGroup container, int position) {
View v = views.get(position);
container.addView(v);
return v;
}

//删除选项卡
@Override
public void destroyItem(ViewGroup container, int position, Object object) {

container.removeView(views.get(position));
}

//判断视图是否为返回的对象
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}

//获取标题
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
}
}

 

 

 

案例二:

<activity
android:name=".MainActivity2"
android:label="@string/title_activity_main2"
android:theme="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen">//全屏效果 注意这条
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

imageimageimageimageimage

activity_main2.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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"

tools:context="com.example.administrator.myapplication.MainActivity2">

<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center">
</android.support.v4.view.ViewPager>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/point_layout"
android:layout_gravity="center|bottom">

<ImageView
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_margin="10dp"
android:src="@drawable/meitu_1"
/>

<ImageView
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_margin="10dp"
android:src="@drawable/meitu_1"
/>

<ImageView
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_margin="10dp"
android:src="@drawable/meitu_1"
/>

<ImageView
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_margin="10dp"
android:src="@drawable/meitu_1"
/>
</LinearLayout>


</FrameLayout>

MainActivity.java

package com.example.administrator.myapplication;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;

import java.util.ArrayList;

public class MainActivity2 extends Activity implements ViewPager.OnPageChangeListener{

private ViewPager viewPager;
private ArrayList<View> views=new ArrayList<View>();
private ImageView[] imageViews;
private int currentIndex;//当前正在显示的卡页
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
initViews();
initPoint();
}

private void initViews()
{
viewPager= (ViewPager) findViewById(R.id.viewpager);
views.add(getLayoutInflater().inflate(R.layout.layout1, null));
views.add(getLayoutInflater().inflate(R.layout.layout2, null));
views.add(getLayoutInflater().inflate(R.layout.layout3, null));
views.add(getLayoutInflater().inflate(R.layout.layout4, null));
/* //设置默认显示的选项卡 无效
viewPager.setCurrentItem(2);*/
//注册事件
// viewPager.setOnPageChangeListener(this);
viewPager.setAdapter(new MyPagerAdapter());
viewPager.setOnPageChangeListener(this);
}

private void initPoint()
{
LinearLayout point_layout= (LinearLayout) findViewById(R.id.point_layout);
imageViews=new ImageView[views.size()];
for(int i=0;i<imageViews.length;i++)
{
//获得LinearLayout的子元素
imageViews[i]= (ImageView) point_layout.getChildAt(i);
}

currentIndex=0;
imageViews[currentIndex].setImageResource(R.drawable.meitu_2);

}
//设置小圆点的图片
private void setCurrentPoint(int position)
{
if(currentIndex<0||currentIndex==position||currentIndex>imageViews.length-1)
{
return;
}
imageViews[currentIndex].setImageResource(R.drawable.meitu_1);

imageViews[position].setImageResource(R.drawable.meitu_2);
currentIndex=position;
}

@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {
setCurrentPoint(position);
}

@Override
public void onPageScrollStateChanged(int state) {

}

//适配器
class MyPagerAdapter extends PagerAdapter {

@Override
public int getCount() {
return views.size();
}

//实例化选项卡
@Override
public Object instantiateItem(ViewGroup container, int position) {
View v = views.get(position);
container.addView(v);
return v;
}

//删除选项卡
@Override
public void destroyItem(ViewGroup container, int position, Object object) {

container.removeView(views.get(position));
}

//判断视图是否为返回的对象
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}



}

}

转载于:https://my.oschina.net/xiaofeiandroid/blog/636742

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值