欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ViewPager實(shí)現(xiàn)漂亮的引導(dǎo)頁

 更新時(shí)間:2017年08月23日 09:22:02   作者:鉆石VIP  
這篇文章主要為大家詳細(xì)介紹了ViewPager實(shí)現(xiàn)漂亮的引導(dǎo)頁,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

廢話就不多說了,直接上效果圖和代碼

fry.Activity01

package fry;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

import com.example.viewPager.R;

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

public class Activity01 extends Activity implements OnPageChangeListener,OnClickListener{
 private ViewPager viewPager;
 private List<View> views;//用來存放放進(jìn)ViewPager里面的ImageView
 private int[] imageID;//
 private ImagePagerAdapter adapter;//適配器
 private LinearLayout linearLayout;
 private int currentPoint;//當(dāng)前被選中中頁面的下標(biāo)
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity01);
  initData();
  initView();
  
 }
 //初始化view
 void initView(){
  adapter=new ImagePagerAdapter(views);
  viewPager=(ViewPager) findViewById(R.id.viewPager);
  viewPager.setAdapter(adapter);
  linearLayout=(LinearLayout) findViewById(R.id.linearLayout);
  initPoint();
  viewPager.setOnPageChangeListener(this);
 }
 
 //初始化數(shù)據(jù)
 void initData(){
  //將圖片的id全部放到imageID集合中
  imageID=new int[]{R.drawable.guide1,R.drawable.guide2,R.drawable.guide3,R.drawable.guide4};
  views=new ArrayList<View>();
  //給iamgeView設(shè)置LayoutParams參數(shù)
  LayoutParams layoutParams=new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
  for(int i:imageID){
   //不確定1
   ImageView imageView=new ImageView(this);
   imageView.setImageResource(i);
   imageView.setLayoutParams(layoutParams);
   views.add(imageView);
  }
  
  
 }
 
 /*
  * 初始化頁面下方的點(diǎn)
  */
 private void initPoint(){
  ImageView[] imageView=new ImageView[imageID.length]; 
  for(int i=0;i<linearLayout.getChildCount();i++){
   imageView[i]=(ImageView) linearLayout.getChildAt(i);
   imageView[i].setImageResource(R.drawable.point_normal);
   imageView[i].setOnClickListener(this);
   imageView[i].setTag(i);
  }
  currentPoint=0;
  imageView[currentPoint].setImageResource(R.drawable.point_select);
 }
 /*
  * 將頁面下方的點(diǎn)全部置為未選中狀態(tài)
  */
 private ImageView[] clearPoint(){
  ImageView[] imageView=new ImageView[imageID.length]; 
  for(int i=0;i<linearLayout.getChildCount();i++){
   imageView[i]=(ImageView) linearLayout.getChildAt(i);
   imageView[i].setImageResource(R.drawable.point_normal);
  }
  return imageView;
 }

 @Override
 public void onPageScrollStateChanged(int arg0) {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void onPageScrolled(int arg0, float arg1, int arg2) {
  // TODO Auto-generated method stub
  
 }

 /*
  * 頁面被選中時(shí)候執(zhí)行的方法
  * (non-Javadoc)
  * @see android.support.v4.view.ViewPager.OnPageChangeListener#onPageSelected(int)
  */
 @Override
 public void onPageSelected(int position) {
  // TODO Auto-generated method stub
  ImageView[] imageView= clearPoint();
  imageView[position].setImageResource(R.drawable.point_select);
 }
 
 //小圓點(diǎn)點(diǎn)擊事件
 @Override
 public void onClick(View v) {
  // TODO Auto-generated method stub
  int i=(Integer) v.getTag();
  viewPager.setCurrentItem(i);
 }
 
}

fry.ImagePagerAdapter

package fry;

import java.util.ArrayList;
import java.util.List;

import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;

public class ImagePagerAdapter extends PagerAdapter{

 private List<View> views;
 
 
 
 public ImagePagerAdapter(List<View> views) {
  this.views=views;
 }

 @Override
 public int getCount() {
  // TODO Auto-generated method stub
  return this.views.size();
 }
 /**
  * position是在viewPager中顯示圖片的位置
  * 我對應(yīng)的圖片放到對應(yīng)的位置就好了
  * instantiateItem和destroyItem是對應(yīng)的
  * 一個(gè)是創(chuàng)建item,一個(gè)是銷毀item
  */
 @Override
 public Object instantiateItem(ViewGroup container, int position) {
  ((ViewPager)container).addView(views.get(position));
  return views.get(position);
 }

 @Override
 public boolean isViewFromObject(View arg0, Object arg1) {
  // TODO Auto-generated method stub
  return arg0==arg1;
 }

 @Override
 public void destroyItem(ViewGroup container, int position, Object object) {
  ((ViewPager)container).removeView(views.get(position));
 }

}

/viewPager/res/layout/activity01.xml

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

 <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/linearLayout"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:orientation="horizontal"
  android:layout_gravity="bottom|center"
  >
  <ImageView 
   android:id="@+id/point1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:src="@drawable/point_select"
   android:padding="25dip"
   />
  <ImageView 
   android:id="@+id/point2"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:src="@drawable/point_normal"
   android:padding="25dip"
   />
  <ImageView 
   android:id="@+id/point3"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:src="@drawable/point_normal"
   android:padding="25dip"
   />
  <ImageView 
   android:id="@+id/point4"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:src="@drawable/point_normal"
   android:padding="25dip"
   />
  
 </LinearLayout>

</FrameLayout>

1、多個(gè)控件(這里指小圓點(diǎn))可以用List來一起訪問

2、可用動態(tài)的控件設(shè)置tag來區(qū)分控件

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Flutter自定義年月日倒計(jì)時(shí)

    Flutter自定義年月日倒計(jì)時(shí)

    這篇文章主要為大家詳細(xì)介紹了Flutter自定義年月日倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Android給自定義按鍵添加廣播和通過廣播給當(dāng)前焦點(diǎn)輸入框賦值

    Android給自定義按鍵添加廣播和通過廣播給當(dāng)前焦點(diǎn)輸入框賦值

    這篇文章主要介紹了Android給自定義按鍵添加廣播和通過廣播給當(dāng)前焦點(diǎn)輸入框賦值的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Android編程實(shí)現(xiàn)播放MP3功能示例

    Android編程實(shí)現(xiàn)播放MP3功能示例

    這篇文章主要介紹了Android編程實(shí)現(xiàn)播放MP3功能,結(jié)合實(shí)例形式分析了Android播放MP3功能的界面布局與功能實(shí)現(xiàn)相關(guān)操作技巧,需要的朋友可以參考下
    2017-02-02
  • Android獲取其他包的Context實(shí)例代碼

    Android獲取其他包的Context實(shí)例代碼

    這篇文章主要介紹了Android獲取其他包的Context實(shí)例代碼,有需要的朋友可以參考一下
    2014-01-01
  • Android抽象布局——include、merge 、ViewStub詳解

    Android抽象布局——include、merge 、ViewStub詳解

    這篇文章主要介紹了 Android抽象布局——include、merge 、ViewStub詳解,詳細(xì)的介紹了三種布局各有的優(yōu)勢,有興趣的同學(xué)可以參考一下。
    2016-12-12
  • android 實(shí)現(xiàn)控件左右或上下抖動教程

    android 實(shí)現(xiàn)控件左右或上下抖動教程

    這篇文章主要介紹了android 實(shí)現(xiàn)控件左右或上下抖動教程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • android app跳轉(zhuǎn)到微信的示例

    android app跳轉(zhuǎn)到微信的示例

    這篇文章主要介紹了android app跳轉(zhuǎn)到微信的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • flutter實(shí)現(xiàn)帶刪除動畫的listview功能

    flutter實(shí)現(xiàn)帶刪除動畫的listview功能

    最近接了一個(gè)新項(xiàng)目,需要開發(fā)帶有刪除動畫效果的listview功能,在實(shí)現(xiàn)過程中列表滾動效果用listview實(shí)現(xiàn)的,本文通過實(shí)例代碼給大家分享實(shí)現(xiàn)過程,感興趣的朋友跟隨小編一起學(xué)習(xí)下吧
    2021-05-05
  • 詳細(xì)分析Android-Zygote的啟動過程

    詳細(xì)分析Android-Zygote的啟動過程

    在Android系統(tǒng)中,所有的應(yīng)用程序進(jìn)程以及系統(tǒng)服務(wù)進(jìn)程SystemServer都是由Zygote進(jìn)程孕育(fork)出來的,這也許就是為什么要把它稱為Zygote(受精卵)的原因吧。由于Zygote進(jìn)程在Android系統(tǒng)中有著如此重要的地位,本文將詳細(xì)分析它的啟動過程
    2021-06-06
  • Android framework ATMS啟動流程

    Android framework ATMS啟動流程

    這篇文章主要為大家介紹了Android framework ATMS啟動流程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03

最新評論