今天做了一個功能需要在一個頁面上顯示一個流程圖,因為這個流程圖本身比較大,顯示在頁面上之后,我們并不能清楚的看清里面的字,這時候就要我們可以通過縮放來查看流程圖,想到就給原來的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
新聞熱點
疑難解答