android之viewpager进度条跟随页面滑动

本文介绍如何在Android中实现一个进度条跟随ViewPager页面滑动的效果。通过监听ViewPager的滑动事件,动态计算进度条的位置,使得进度条能够实时反映出页面的滑动状态。文中提供详细代码示例和实现原理。
摘要由CSDN通过智能技术生成

最近因为项目需求原因要写进度条,但是到网上找都没有找到自己想要的效果,因为写过类似的效果外加对其效果原理也清楚是怎么回事,就最近写一个。

功能就是可以随时跟随滑动,页面滑到一半,那么进度条也会滑到一半。

废话不多说先看代码(后面有源码下载地址)

[java]  view plain copy
  1. package com.example.viewpagerdome;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.support.v4.view.ViewPager;  
  6. import android.support.v4.view.ViewPager.OnPageChangeListener;  
  7. import android.util.Log;  
  8. import android.view.View;  
  9. import android.view.View.OnClickListener;  
  10. import android.widget.Button;  
  11. import android.widget.ImageView;  
  12. import android.widget.RelativeLayout;  
  13. import android.widget.RelativeLayout.LayoutParams;  
  14.   
  15. /** 
  16.  * 进度条跟随滑动功能 
  17.  */  
  18. public class MainActivity extends Activity implements OnClickListener {  
  19.     /** 标签 **/  
  20.     private Button buttonTab01, buttonTab02, buttonTab03, buttonTab04;  
  21.     /** 进度条 **/  
  22.     private ImageView imageView;  
  23.     /** 进度条宽度 **/  
  24.     private Integer imageViewW = 0;  
  25.     /** 当官视图宽度 **/  
  26.     private Integer viewPagerW = 0;  
  27.     /** 适配器 **/  
  28.     private ViewpagerAdapter viewpagerAdapter;  
  29.     /** 多页面控件 **/  
  30.     private ViewPager viewPager;  
  31.     /** 布局属性 **/  
  32.     private RelativeLayout.LayoutParams layoutParams;  
  33.     /** 进度条移动值 **/  
  34.     private Integer moveI;  
  35.     /** 放重复 **/  
  36.     private boolean isFirst = true;  
  37.   
  38.     @Override  
  39.     protected void onCreate(Bundle savedInstanceState) {  
  40.         super.onCreate(savedInstanceState);  
  41.         setContentView(R.layout.activity_main);  
  42.   
  43.         viewPager = (ViewPager) findViewById(R.id.viewpager_show);  
  44.         imageView = (ImageView) findViewById(R.id.imageView_tiao);  
  45.         buttonTab01 = (Button) findViewById(R.id.button_01);  
  46.         buttonTab02 = (Button) findViewById(R.id.button_02);  
  47.         buttonTab03 = (Button) findViewById(R.id.button_03);  
  48.         buttonTab04 = (Button) findViewById(R.id.button_04);  
  49.   
  50.         // 布局属性:用来设置进度条宽度和实现移动  
  51.         layoutParams = (LayoutParams) imageView.getLayoutParams();  
  52.   
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值