package com.wise.extend; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.widget.HorizontalScrollView; import android.widget.Scroller; public class PicHorizontalScrollView extends HorizontalScrollView{ static final String TAG = "PicHorizontalScrollView"; private Scroller mScroller; int FristScreenWidth; public PicHorizontalScrollView(Context context, AttributeSet attrs) { super(context, attrs); mScroller = new Scroller(getContext()); } /** * 只传后2个参数即可 * @param ScrollX * @param delta * @param whichScreen * @param duration */ public void snapToPic(int ScrollX,int delta,int whichScreen ,int duration){ int mydelta = 0;//移动的目标 if(whichScreen == 0){ mydelta = 0; }else{ mydelta = FristScreenWidth; } int Distance = mydelta - getScrollX(); //从当前位置到目标位置的距离 mScroller.startScroll(getScrollX(), 0, Distance, 0, duration); invalidate(); } public void SetFristScreenWidth(int width){ FristScreenWidth = width; } @Override public void computeScroll() { super.computeScroll(); if (mScroller.computeScrollOffset()) { scrollTo(mScroller.getCurrX(), mScroller.getCurrY()); } } }