成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Android實(shí)現(xiàn)局部圖片滑動(dòng)指引效果

Android 實(shí)現(xiàn)局部圖片滑動(dòng)指引效果

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供衡南企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、HTML5、小程序制作等業(yè)務(wù)。10年已為衡南眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

而ViewPager的事件監(jiān)聽器代碼如下:

  // 滑動(dòng)頁(yè)面更改事件監(jiān)聽器
  private class ImagePageChangeListener implements OnPageChangeListener {
    @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 
 
    } 
 
    @Override 
    public void onPageSelected(int index) { 
      pageIndex = index;
      slideLayout.setPageIndex(index);
      tvSlideTitle.setText(parser.getSlideTitles()[index]);
      
      for (int i = 0; i < imageCircleViews.length; i++) { 
        imageCircleViews[index].setBackgroundResource(R.drawable.dot_selected);
        
        if (index != i) { 
          imageCircleViews[i].setBackgroundResource(R.drawable.dot_none); 
        } 
      }
    } 
  }
 

事件監(jiān)聽器中主要在回調(diào)函數(shù)onPageSelected(int index)中變換標(biāo)題和圓點(diǎn)圖片。 

由于滑動(dòng)區(qū)域下方的內(nèi)容是不變的,也就是不滑動(dòng)的,正如在我在上面提到的,內(nèi)容可能會(huì)超出屏幕的范圍,所以我們需要使用ScrollView以便內(nèi)容過多的時(shí)候顯示滾動(dòng)條??赡芤徊糠峙笥褧?huì)想到,要顯示滾動(dòng)條我也知道使用ScrollView。我想在這里說的是,這里即有ViewPager控件,也有ScrollView,如果兩個(gè)View單獨(dú)使用不會(huì)有什么問題。然而不幸的是,兩個(gè)一結(jié)合使用就出現(xiàn)了問題。什么問題呢?就是在滑動(dòng)圖片時(shí)出現(xiàn)反彈的現(xiàn)象,就是在滑動(dòng)時(shí)很難滑動(dòng),我滑動(dòng)時(shí)感覺很吃力,而且圖片就是滑動(dòng)不過去,這個(gè)就是兩個(gè)View之間的沖突,因?yàn)閮蓚€(gè)View都是滑動(dòng)的View,都會(huì)計(jì)算相應(yīng)的位置和判斷相應(yīng)的距離。 

我們?nèi)绾蝸斫鉀Q這個(gè)沖突呢?這里我們需要重寫ScrollView的onInterceptTouchEvent()回調(diào)函數(shù)。需要在程序里新加一個(gè)ScrollViewExtend類并繼承自ScrollView,下面是其代碼:

package com.image.indicator.control;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ScrollView;

/**
 * 能夠兼容ViewPager的ScrollView
 * @Description: 解決了ViewPager在ScrollView中的滑動(dòng)反彈問題

 * @File: ViewPagerCompatScrollView.java

 * @Package com.image.indicator.control

 * @Author Hanyonglu

 * @Date 2012-6-18 下午01:34:50

 * @Version V1.0
 */
public class ScrollViewExtend extends ScrollView {
  // 滑動(dòng)距離及坐標(biāo)
  private float xDistance, yDistance, xLast, yLast;

  public ScrollViewExtend(Context context, AttributeSet attrs) {
    super(context, attrs);
  }

  @Override
  public boolean onInterceptTouchEvent(MotionEvent ev) {
    switch (ev.getAction()) {
      case MotionEvent.ACTION_DOWN:
        xDistance = yDistance = 0f;
        xLast = ev.getX();
        yLast = ev.getY();
        break;
      case MotionEvent.ACTION_MOVE:
        final float curX = ev.getX();
        final float curY = ev.getY();
        
        xDistance += Math.abs(curX - xLast);
        yDistance += Math.abs(curY - yLast);
        xLast = curX;
        yLast = curY;
        
        if(xDistance > yDistance){
          return false;
        } 
    }

    return super.onInterceptTouchEvent(ev);
  }
}

感謝閱讀,希望能幫助到大家,謝謝大家對(duì) 本站的支持!

當(dāng)前標(biāo)題:Android實(shí)現(xiàn)局部圖片滑動(dòng)指引效果
本文網(wǎng)址:http://jinyejixie.com/article42/pdcghc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站排名、面包屑導(dǎo)航App開發(fā)、虛擬主機(jī)

廣告

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

商城網(wǎng)站建設(shè)
塔河县| 平潭县| 灵台县| 比如县| 泰来县| 莲花县| 吴江市| 台北县| 五指山市| 柯坪县| 沙坪坝区| 栖霞市| 浦江县| 突泉县| 南充市| 乌拉特前旗| 醴陵市| 开原市| 吴川市| 思南县| 额敏县| 南皮县| 德安县| 凤山县| 松潘县| 宣武区| 漠河县| 凤台县| 吉安市| 天长市| 龙游县| 阜宁县| 宝山区| 武清区| 玛沁县| 昌平区| 伽师县| 岳阳市| 凯里市| 嵊州市| 宝鸡市|