欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

viewpager實(shí)現(xiàn)廣告滑動及文字滑動和下方點(diǎn)的選中狀態(tài)改變

效果如圖:

在宜昌等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè),宜昌網(wǎng)站建設(shè)費(fèi)用合理。

viewpager實(shí)現(xiàn)廣告滑動及文字滑動和下方 點(diǎn)的選中狀態(tài)改變

首先說下方的這幾個(gè)點(diǎn),這個(gè)點(diǎn)不是圖片效果,而是Android自帶的shape畫的橢圓,使橢圓的寬高一樣,就變成原型,然后設(shè)置顏色即可。

這2個(gè)點(diǎn)的代碼如下:

    紅色點(diǎn)的代碼

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
    <size android:width="8dp" android:height="8dp"/>
    <solid android:color="#ff00"/>
</shape>

    灰色點(diǎn)的代碼

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
    <size android:width="8dp" android:height="8dp"/>
    <solid android:color="#44000000"/>
</shape>

整體思路:

    1、要展示viewpager,就要先把圖片獲取,圖片是放在drawable-hdpi里的5張圖片。

    2、把圖片放到一個(gè)list里,這個(gè)類似listview

    3、利用viewpager的適配器,展示圖片

    4、在圖片的適配器里根據(jù)位置加載每個(gè)圖片資源,同時(shí)把圖片下方的文字和選中的點(diǎn)顯示

    5、同時(shí)在適配器里要銷毀已經(jīng)隱藏的圖片占用的資源

    6、截止上一步,已經(jīng)可以滑動圖片了,但是圖片滑動時(shí),文字和點(diǎn)沒有跟著變化,此時(shí)需要利用viewpage人的滑動監(jiān)聽,來處理文字變化和點(diǎn)的變化

    7、viewpager有一個(gè)

viewpager.addOnPageChangeListener(new MyOnPageChangeListener());

        監(jiān)聽,就new一個(gè)內(nèi)部類,在內(nèi)部類里通過圖片滑動時(shí)的回調(diào)方法來實(shí)現(xiàn)。具體代碼如下

MainActivity.java

package com.yuanlp.viewpager;

import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

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

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "MainActivity";

    private ViewPager viewpager;
    private TextView tv_title;
    private LinearLayout ll_point_group;

    private List<ImageView> p_w_picpathviews;  //存放p_w_picpathview的集合,以便后期放入pageadapter中

    //圖片資源ID
    private final int[] p_w_picpathIDs={
            R.drawable.a,
            R.drawable.b,
            R.drawable.c,
            R.drawable.d,
            R.drawable.e
    };

    //圖片標(biāo)題集合
    private final String[] p_w_picpathDescriptions={
            "硅谷拔河比賽",
            "凝聚你我,放飛夢想",
            "抱歉,滿座了",
            "七月熱浪滔天",
            "加油努力學(xué)習(xí)"
    };


    //上一次點(diǎn)位高亮顯示的位置
    private int prePosition=0;

            
            //為了使廣告隔段時(shí)間自動切換下一張圖片,需要在此用到Handler
            private Handler handler=new Handler(){
                @Override
                public void handleMessage(Message msg) {
                    int item=viewpager.getCurrentItem()+1;
                    viewpager.setCurrentItem(item);
            
                    //延遲發(fā)消息
                    handler.sendEmptyMessageDelayed(0,4000);
                }
            };
            
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        viewpager= (ViewPager) findViewById(R.id.viewpager);
        tv_title= (TextView) findViewById(R.id.tv_title);
        ll_point_group= (LinearLayout) findViewById(R.id.ll_point_group);

        p_w_picpathviews=new ArrayList<ImageView>();
        MyPagerAdapter pagerAdapter=new MyPagerAdapter();
        for (int i=0;i<p_w_picpathIDs.length;i++){
            //在這里把p_w_picpath一個(gè)一個(gè)new出來
            ImageView p_w_picpathView=new ImageView(this);

            //這里引用圖片設(shè)置為背景而不是src,是因?yàn)閟rc可能會導(dǎo)致填充不完全
            p_w_picpathView.setBackgroundResource(p_w_picpathIDs[i]);

            //添加到集合
            p_w_picpathviews.add(p_w_picpathView);


            //添加點(diǎn)
            ImageView point=new ImageView(this);
            point.setBackgroundResource(R.drawable.selectors);
            LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(8,8);  //2個(gè)參數(shù)是寬和高
            if (i==0){
                point.setEnabled(true); //默認(rèn)第0個(gè)顯示紅色選中
            }else{
                point.setEnabled(false); //其他為灰色
                params.leftMargin=8;    //設(shè)置和左邊的為8個(gè)像素的間距
            }


            point.setLayoutParams(params);
            //添加到線性布局里
            ll_point_group.addView(point);

        }
        viewpager.setAdapter(pagerAdapter);

        //設(shè)置viewpage頁面滑動的監(jiān)聽
        viewpager.addOnPageChangeListener(new MyOnPageChangeListener());
        
                        //設(shè)置中間位置,保證頁面剛開始時(shí),可以從左向右滑動
                int item= Integer.MAX_VALUE/2- Integer.MAX_VALUE/2%p_w_picpathviews.size();  //保證是p_w_picpathviews的長度的整數(shù)倍
                viewpager.setCurrentItem(item);

        //設(shè)置默認(rèn)文本時(shí)第0個(gè)文本內(nèi)容
        tv_title.setText(p_w_picpathDescriptions[prePosition]);
        
                //延遲發(fā)消息,觸發(fā)上面的handler內(nèi)部類,來自動切換圖片
                handler.sendEmptyMessageDelayed(0,4000);
        
    }

    /**
     * 頁面滑動監(jiān)聽類
     */
    class MyOnPageChangeListener implements ViewPager.OnPageChangeListener{

        /**
         * 頁面滾動時(shí),回調(diào)該方法
         * @param position  當(dāng)前的頁面位置
         * @param positionOffset  滑動了頁面的百分之多少
         * @param positionOffsetPixels  //屏幕上滑動了多少個(gè)像素
         */
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        /**
         * 當(dāng)某個(gè)頁面被選中了的時(shí)候回調(diào),即焦點(diǎn)圖片
         * @param position  焦點(diǎn)圖片的位置
         */
        @Override
        public void onPageSelected(int position) {
        int realPosition=position%(p_w_picpathviews.size());  //這是因?yàn)樵谙路降倪m配器里,把數(shù)量無限大了,左右滑動時(shí),會超出list數(shù)組的范圍,報(bào)越界錯(cuò)誤
            //設(shè)置文本變化
            tv_title.setText(p_w_picpathDescriptions[position]);

            //把上一個(gè)高亮的為灰色,把當(dāng)前的設(shè)置為紅色
            ll_point_group.getChildAt(prePosition).setEnabled(false);

            ll_point_group.getChildAt(position).setEnabled(true);
            prePosition=position;

        }

        /**
         * 滑動的過程中回調(diào),狀態(tài)的變化
         * 靜止到滑動,滑動到靜止,靜止到拖拽
         * @param state
         */
        @Override
        public void onPageScrollStateChanged(int state) {

        }
    }
    class MyPagerAdapter extends PagerAdapter{

        @Override
        /**
         * 得導(dǎo)圖片總數(shù)
         */
        public int getCount() {
            return Integer.MAX_VALUE;  //設(shè)置無限多,方便左右無限滑動
        }

        /**
         * 相當(dāng)于getview方法,
         * @param container  本質(zhì)上是viewpage人自身
         * @param position   當(dāng)前實(shí)例化頁面的位置
         * @return
         */
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
                        int realPosition=position%(p_w_picpathviews.size());  //獲取真正的位置
            ImageView p_w_picpathView = p_w_picpathviews.get(position);

            Log.e(TAG, "instantiateItem: 當(dāng)前的位置"+position+"--------"+p_w_picpathView);
            container.addView(p_w_picpathView);  //添加到viewpager中
            return p_w_picpathView;
        }


        /**
         * 比較view和object是否是同一個(gè)實(shí)例
         * @param view  頁面
         * @param object 是上面的方法instantiateItem返回的結(jié)果
         * @return
         */
        @Override
        public boolean isViewFromObject(View view, Object object) {
         return view==object;

        }


        /**
         * 釋放資源
         * @param container  是viewpager
         * @param position    要釋放的位置
         * @param object       要釋放的頁面
         */
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {

            container.removeView((View) object);
            Log.e(TAG, "destroyItem: 釋放資源的位置"+position+"-------object");
        }
    }
}

本文名稱:viewpager實(shí)現(xiàn)廣告滑動及文字滑動和下方點(diǎn)的選中狀態(tài)改變
標(biāo)題鏈接:http://chinadenli.net/article18/jggsdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站營銷、網(wǎng)站內(nèi)鏈全網(wǎng)營銷推廣、虛擬主機(jī)企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
一本久道久久综合中文字幕| 欧美国产在线观看精品| 久久热中文字幕在线视频| 国产一区二区三区午夜精品| 国语对白刺激高潮在线视频| 国内外激情免费在线视频| 日韩欧美二区中文字幕| 欧美大胆女人的大胆人体| 精品午夜福利无人区乱码| 91久久精品中文内射| 亚洲视频偷拍福利来袭| 亚洲一区二区精品久久av| 在线免费视频你懂的观看| 激情五月天深爱丁香婷婷| 国产av乱了乱了一区二区三区| 国产精品免费不卡视频| 国产91麻豆精品成人区| 六月丁香六月综合缴情| 亚洲中文字幕在线视频频道| 国产主播精品福利午夜二区| 久久精品国产99精品亚洲| 日本成人三级在线播放| 日韩欧美黄色一级视频| 99久久精品久久免费| 国产91人妻精品一区二区三区| 欧美日韩国产精品黄片| 国产日产欧美精品视频| 中文字幕亚洲精品乱码加勒比| 国产欧美性成人精品午夜| 熟女乱一区二区三区四区| 亚洲日本久久国产精品久久| 99热在线精品视频观看| 人妻偷人精品一区二区三区不卡| 少妇熟女精品一区二区三区| 日本不卡在线一区二区三区| 人妻内射在线二区一区| 色综合久久中文综合网| 初尝人妻少妇中文字幕在线| 精品一区二区三区不卡少妇av| 激情内射日本一区二区三区| 日韩精品第一区二区三区|