Re: [問題] ImageView + ZoomButtonsController

看板AndroidDev作者 (小恐龍)時間12年前 (2012/07/11 17:22), 編輯推噓6(604)
留言10則, 1人參與, 最新討論串2/2 (看更多)
ZoomButtonsController.setVisible必須要在Window建立後才能運作 而整個Window建立完成是在onResume()跑完之後 所以可以透過Handler來呼叫setVisible(true) 來保證他會在window建立完成後才執行 然後之後要放大縮小的話,還是要在onZoom裡面自己處理 可是onZoom只有帶一個boolean,沒有view的資訊 剛才我試過的結果,應該還是把要縮放的View宣告成全域 然後再在onZoom裡面去動你想縮放的東西。 還有因為zoom的button位置會隨著上層的View移動 所以比較建議綁在上層的Layout, 這樣不管怎麼縮放,只要沒動到Layout按鈕出現的位置就不會改變 範例程式http://pastebin.com/hQ10DXqE 說真的,沒有比自己寫兩個Button省事多少,除了他能自動消失之外 附帶一提,把AutoDismissed設成true的話,還要自己處理重新顯示縮放按鈕的事件 ......發現詭異的Bug 在ZoomButton顯示的時候好像會把返回鍵吃掉無法離開程式 抓onKeyDown也沒用 改成會自動消失,然後點螢幕會出現按鈕的程式 http://pastebin.com/jDu8iaPa 問題好像是出在setFocusable(true) 假如把這行拔掉的話就可以按返回鍵,但是會噴Exception= = ※ 引述《givemepass (〆)》之銘言: : 大家好 小弟有一個疑問 : 就是我想要將ImageView加入ZoomButtonsController的功能, : 就像有Android Gallery裡面的照片 : 點一下就會出現像Mapview一樣 有放大縮小的功能 : 但是小弟上網找很多資料 , 卻找不到一個可以正常跑出來的範例 : 不知道是哪邊出問題 : 程式碼如下 : Image imageView = (ImageView)findViewById(R.id.image_view); : ZoomButtonsController mZoomButtonsController = new : ZoomButtonsController(imageView); : mZoomButtonsController.setVisible(true); : mZoomButtonsController.setFocusable(true); : mZoomButtonsController.setZoomInEnabled(true); : mZoomButtonsController.setZoomOutEnabled(true); : mZoomButtonsController.setZoomSpeed(1000); : mZoomButtonsController.setAutoDismissed(true); : mZoomButtonsController.setOnZoomListener(new OnZoomListener() { : @Override : public void onVisibilityChanged(boolean visible) {} : @Override : public void onZoom(boolean zoomIn) { : } : }); : 這樣會出現 : Cannot make the zoom controller visible if the owner view is not attached to : a window. : 的訊息, 請問我的做法是哪邊可能出現了錯誤 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.91.176

07/11 17:58, , 1F
感謝分享 我來試看看:D
07/11 17:58, 1F

07/11 18:08, , 2F
跑不了耶@@ 請問大大可以給我整份專案嗎?
07/11 18:08, 2F
應該xml裡拉好RelativeLayout跟ImageView設好id 然後圖檔來源改成自己的就能跑拉

07/11 20:03, , 3F
有 可是還是跑不了
07/11 20:03, 3F

07/11 20:03, , 4F
Caused by: java.lang.ClassNotFoundException
07/11 20:03, 4F

07/11 20:03, , 5F
所以還是麻煩大大上傳一下整個專案 我看差別在哪 謝謝
07/11 20:03, 5F

07/11 21:48, , 6F
有了耶 不過很奇怪我寫的跟你的一樣 只是差別在layout
07/11 21:48, 6F

07/11 21:48, , 7F
你的多包了一層 RelativeLayout 怎麼這樣就可以跑了?
07/11 21:48, 7F

07/11 21:51, , 8F
另外請問大大 如果ImageView想要可以上下左右拖曳
07/11 21:51, 8F

07/11 21:51, , 9F
是不是還要在寫一些事件來進行判斷?
07/11 21:51, 9F
多包一層Layout是我中間在測試的東西,拔掉應該沒差 你會噴ClassNotFoundException我猜應該是你開的專案版本太低 要自由拖動ImageView的話可能要自己改寫上層Layout或是Activity的onTouchEvent喔 ※ 編輯: cooper6334 來自: 140.112.91.176 (07/11 21:58)

07/11 22:06, , 10F
謝謝^^ 學到很多
07/11 22:06, 10F
文章代碼(AID): #1F_KNWF1 (AndroidDev)
文章代碼(AID): #1F_KNWF1 (AndroidDev)