成都网站建设设计

将想法与焦点和您一起共享

viewpager实现广告滑动及文字滑动和下方点的选中状态改变

效果如图:

在宜昌等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、网站制作 网站设计制作定制制作,公司网站建设,企业网站建设,成都品牌网站建设,成都全网营销推广,成都外贸网站建设,宜昌网站建设费用合理。

viewpager实现广告滑动及文字滑动和下方 点的选中状态改变

首先说下方的这几个点,这个点不是图片效果,而是Android自带的shape画的椭圆,使椭圆的宽高一样,就变成原型,然后设置颜色即可。

这2个点的代码如下:

    红色点的代码



    
    

    灰色点的代码



    
    

整体思路:

    1、要展示viewpager,就要先把图片获取,图片是放在drawable-hdpi里的5张图片。

    2、把图片放到一个list里,这个类似listview

    3、利用viewpager的适配器,展示图片

    4、在图片的适配器里根据位置加载每个图片资源,同时把图片下方的文字和选中的点显示

    5、同时在适配器里要销毁已经隐藏的图片占用的资源

    6、截止上一步,已经可以滑动图片了,但是图片滑动时,文字和点没有跟着变化,此时需要利用viewpage人的滑动监听,来处理文字变化和点的变化

    7、viewpager有一个

viewpager.addOnPageChangeListener(new MyOnPageChangeListener());

        监听,就new一个内部类,在内部类里通过图片滑动时的回调方法来实现。具体代码如下

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

    //图片标题集合
    private final String[] p_w_picpathDescriptions={
            "硅谷拔河比赛",
            "凝聚你我,放飞梦想",
            "抱歉,满座了",
            "七月热浪滔天",
            "加油努力学习"
    };


    //上一次点位高亮显示的位置
    private int prePosition=0;

            
            //为了使广告隔段时间自动切换下一张图片,需要在此用到Handler
            private Handler handler=new Handler(){
                @Override
                public void handleMessage(Message msg) {
                    int item=viewpager.getCurrentItem()+1;
                    viewpager.setCurrentItem(item);
            
                    //延迟发消息
                    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();
        MyPagerAdapter pagerAdapter=new MyPagerAdapter();
        for (int i=0;i            
            
                                
网站名称:viewpager实现广告滑动及文字滑动和下方点的选中状态改变
转载注明:http://chengdu.cdxwcx.cn/article/jggsdp.html