1. 程式人生 > >ImageView ImageView隨手勢變化 動態縮放

ImageView ImageView隨手勢變化 動態縮放

今天做了一個功能需要在一個頁面上顯示一個流程圖,因為這個流程圖本身比較大,顯示在頁面上之後,我們並不能清楚的看清裡面的字,這時候就要我們可以通過縮放來檢視流程圖,想到就給原來的ImageView的新增縮放,之前就寫過類似的程式碼,不想再寫了就打算在網上找找,果然找到了一位網友的,他對ImageView繼承,重寫了onTouchEvent,實現了縮放,我就使用的網友的程式碼,可以使用到的時候發現,由於需要設定android:scaleType=”matrix”,這樣在流程圖剛開始就是放大的效果,很不好看,怎麼解決這個問題,我想在佈局檔案中,我們不能設定scaleType,應該在onTouchEvent 中去設定,這樣我們剛進去就不會有縮放的效果,測試發現,這個問題解決了,下面是我在網友程式碼的基礎上新增的程式碼:

case MotionEvent.ACTION_MOVE:  
            if(mode==DRAG){         //此實現圖片的拖動功能...  
                matrix.set(savedMatrix);  
                matrix.postTranslate(event.getX()-start.x, event.getY()-start.y);  
            }  
            else if(mode==ZOOM){// 此實現圖片的縮放功能...  
             float newDist=spacing(event);  
             if
(newDist>10){ matrix.set(savedMatrix); float scale=newDist/oldDist; matrix.postScale(scale, scale, mid.x, mid.y); } } break; } setScaleType(ImageView.ScaleType.MATRIX); setImageMatrix(matrix); return
true;

在解決上面的問題中,查看了這二個部落格的內容,在這裡對二位表示感謝,下面給出連結:
可縮放的 Imageview

scaleType 的屬性的文章:scaleType