在網上找了好多下拉Scrollview圖片放大的效果,結果看了一下都不太靠譜,後來自己想了一個辦法解決了這個問題。跟大家分享一下。
其實就是對Scrollview下拉的監聽將視圖放大。不管是View還是ImageView放大就ok了。主要代碼如下:
/** 手指放下的監聽*/
float initTouchY=0;
mScrollView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
//放下監聽
case MotionEvent.ACTION_DOWN:
initTouchY=event.getY();
break;
//手指擡起監聽
case MotionEvent.ACTION_UP:
mSlidingPlayView.setLayoutParams(new RelativeLayout.LayoutParams(diaplayWidth,AbViewUtil.dip2px(DetailA.this, imagHeight)));
break;
//移動監聽
case MotionEvent.ACTION_MOVE:
int upY=v.getScrollY();
float touchY=event.getY();
<span style="white-space:pre"> </span>//對圖片放大的處理
if(upY==0){ //scrollview在頂部
float deltaY = touchY - initTouchY;// 滑動距離
if(deltaY<80){
//重新設置控件的大小addWidth=diaplayWidth+deltaY <span style="font-family: Arial, Helvetica, sans-serif;">addHeight同理 </span><pre name="code" class="java"><span style="white-space:pre"> </span>//mSlidingPlayView我這裏是幻燈播放的控件,一般可以 設置成ImageView
mSlidingPlayView.setLayoutParams(new RelativeLayout.LayoutParams(addWidth,addHeight)); } } }break;default:break;}return false;}});
最後一定要記得給ImageView添加一個屬性,才能實現下拉圖片放大的效果
android:scaleType="centerCrop"