今天做了一個(gè)功能需要在一個(gè)頁(yè)面上顯示一個(gè)流程圖,因?yàn)檫@個(gè)流程圖本身比較大,顯示在頁(yè)面上之后,我們并不能清楚的看清里面的字,這時(shí)候就要我們可以通過(guò)縮放來(lái)查看流程圖,想到就給原來(lái)的ImageView的添加縮放,之前就寫(xiě)過(guò)類(lèi)似的代碼,不想再寫(xiě)了就打算在網(wǎng)上找找,果然找到了一位網(wǎng)友的,他對(duì)ImageView繼承,重寫(xiě)了onTouchEvent,實(shí)現(xiàn)了縮放,我就使用的網(wǎng)友的代碼,可以使用到的時(shí)候發(fā)現(xiàn),由于需要設(shè)置android:scaleType=”matrix”,這樣在流程圖剛開(kāi)始就是放大的效果,很不好看,怎么解決這個(gè)問(wèn)題,我想在布局文件中,我們不能設(shè)置scaleType,應(yīng)該在onTouchEvent 中去設(shè)置,這樣我們剛進(jìn)去就不會(huì)有縮放的效果,測(cè)試發(fā)現(xiàn),這個(gè)問(wèn)題解決了,下面是我在網(wǎng)友代碼的基礎(chǔ)上添加的代碼:
case MotionEvent.ACTION_MOVE: if(mode==DRAG){ //此實(shí)現(xiàn)圖片的拖動(dòng)功能... matrix.set(savedMatrix); matrix.postTranslate(event.getX()-start.x, event.getY()-start.y); } else if(mode==ZOOM){// 此實(shí)現(xiàn)圖片的縮放功能... 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;在解決上面的問(wèn)題中,查看了這二個(gè)博客的內(nèi)容,在這里對(duì)二位表示感謝,下面給出鏈接: 可縮放的 Imageview
scaleType 的屬性的文章:scaleType
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注