Android开发之使用ViewPager做引导页面(转载)

转载自:deng0zhaotai http://blog.csdn.net/deng0zhaotai/article/details/24744637

 

MainActivity.java

package com.example.viewpagerdemo;

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

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends Activity {

    private ViewPager viewPager = null;
    private ImageView img1, img2, img3;
    private ArrayList<String> titles;
    private int curIndex = -1;
    private Button before,next;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        before=(Button)findViewById(R.id.before);
        next=(Button)findViewById(R.id.next);
        initWidgets();
        // 把要显示的View装入数组
        LayoutInflater li = LayoutInflater.from(this);
        View view1 = li.inflate(R.layout.pager1, null);
        View view2 = li.inflate(R.layout.pager2, null);
        View view3 = li.inflate(R.layout.pager3, null);

        // 添加页面
        final ArrayList<View> views = new ArrayList<View>();
        views.add(view1);
        views.add(view2);
        views.add(view3);

        // 添加标题
        titles = new ArrayList<String>();
        titles.add("tab1");
        titles.add("tab2");
        titles.add("tab3");

        picViewPagerAdapter pagerAdapter = new picViewPagerAdapter(views);
        viewPager.setAdapter(pagerAdapter);
        //打开程序显示的当前页面
        curIndex = 0;
        viewPager.setCurrentItem(curIndex);
        //imag1为选中的点,且上按钮不显示
        img1.setImageResource(R.drawable.page_icon_sel); 
        before.setVisibility(View.INVISIBLE);
        viewPager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int arg0) {
                // TODO Auto-generated method stub
                switch (arg0) {
                case 0:
                    before.setVisibility(View.INVISIBLE);
                    next.setVisibility(View.VISIBLE);
                    img1.setImageResource(R.drawable.page_icon_sel);
                    img2.setImageResource(R.drawable.page_icon);
                    img3.setImageResource(R.drawable.page_icon);
                    break;
                case 1:
                    before.setVisibility(View.VISIBLE);
                    next.setVisibility(View.VISIBLE);
                    img2.setImageResource(R.drawable.page_icon_sel);
                    img1.setImageResource(R.drawable.page_icon);
                    img3.setImageResource(R.drawable.page_icon);
                    break;
                case 2:
                    before.setVisibility(View.VISIBLE);
                    next.setVisibility(View.INVISIBLE);
                    img3.setImageResource(R.drawable.page_icon_sel);
                    img1.setImageResource(R.drawable.page_icon);
                    img2.setImageResource(R.drawable.page_icon);
                    
                    break;
                default:
                    break;
                }
                curIndex = arg0;
                System.out.println("[MainActivity->]currIndex = " + curIndex);
            }
        
            @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

            }
        });
        
        before.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if(curIndex!=0)
                viewPager.setCurrentItem(--curIndex);
                
            }
        });
       next.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if(curIndex!=2)
                viewPager.setCurrentItem(++curIndex);
            }
        });
    }

    private void initWidgets() {
        viewPager = (ViewPager) findViewById(R.id.viewpager);
        img1 = (ImageView) findViewById(R.id.icon_1);
        img2 = (ImageView) findViewById(R.id.icon_2);
        img3 = (ImageView) findViewById(R.id.icon_3);
        
    }

    /**
     * 为ViewPager添加适配器
     * 
     * @author Administrator
     * 
     */
    class picViewPagerAdapter extends PagerAdapter {

        private List<View> listViews;

        public picViewPagerAdapter(List<View> list) {
            listViews = list;
        }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return listViews.size();
        }

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

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

        @Override
        public CharSequence getPageTitle(int position) {
            return titles.get(position);
        }

        @Override
        public Object instantiateItem(View container, int position) {
            ((ViewPager) container).addView(listViews.get(position));
            return listViews.get(position);
        }
    }
}

activity_main.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:layout_gravity="center" >
    </android.support.v4.view.ViewPager>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|center_horizontal"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/icon_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="30dp"
            android:contentDescription="@string/content_description"
            android:src="@drawable/page_icon" />

        <ImageView
            android:id="@+id/icon_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="30dp"
            android:contentDescription="@string/content_description"
            android:src="@drawable/page_icon" />

        <ImageView
            android:id="@+id/icon_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@string/content_description"
            android:src="@drawable/page_icon" />
    </LinearLayout>

    <Button
        android:id="@+id/before"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="上一页" />

    <Button
        android:id="@+id/next"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="下一页"
        android:layout_gravity="right" />

</FrameLayout>

pager1.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"
    android:background="@drawable/image1"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btn_in_first"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="第一页" />

</LinearLayout>

pager2.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"
    android:background="@drawable/image2"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btn_in_second"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="第二页" />

</LinearLayout>
View Code

pager3.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"
    android:background="@drawable/image3"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btn_in_third"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="第三页" />

</LinearLayout>
View Code

strings.xm

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">viewpagerdemo</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="content_description">test</string>

</resources>
View Code

素材:

转载于:https://www.cnblogs.com/xubuhang/p/4233487.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
未来社区的建设背景和需求分析指出,随着智能经济、大数据、人工智能、物联网、区块链、云计算等技术的发展,社区服务正朝着数字化、智能化转型。社区服务渠道由分散向统一融合转变,服务内容由通用庞杂向个性化、服务导向转变。未来社区将构建数字化生态,实现数据在线、组织在线、服务在线、产品智能和决策智能,赋能企业创新,同时注重人才培养和科研平台建设。 规划设计方面,未来社区将基于居民需求,打造以服务为中心的社区管理模式。通过统一的服务平台和应用,实现服务内容的整合和优化,提供灵活多样的服务方式,如推送式、订阅式、热点式等。社区将构建数据与应用的良性循环,提高服务效率,同时注重生态优美、绿色低碳、社会和谐,以实现幸福民生和产业发展。 建设运营上,未来社区强调科学规划、以人为本,创新引领、重点突破,统筹推进、整体提升。通过实施院落+社团自治工程,转变政府职能,深化社区自治法制化、信息化,解决社区治理中的重点问题。目标是培养有活力的社会组织,提高社区居民参与度和满意度,实现社区治理服务的制度机制创新。 未来社区的数字化解决方案包括信息发布系统、服务系统和管理系统。信息发布系统涵盖公共服务类和社会化服务类信息,提供政策宣传、家政服务、健康医疗咨询等功能。服务系统功能需求包括办事指南、公共服务、社区工作参与互动等,旨在提高社区服务能力。管理系统功能需求则涉及院落管理、社团管理、社工队伍管理等,以实现社区治理的现代化。 最后,未来社区建设注重整合政府、社会组织、企业等多方资源,以提高社区服务的效率和质量。通过建立社区管理服务综合信息平台,提供社区公共服务、社区社会组织管理服务和社区便民服务,实现管理精简、高效、透明,服务快速、便捷。同时,通过培育和发展社区协会、社团等组织,激发社会化组织活力,为居民提供综合性的咨询和服务,促进社区的和谐发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值