Re: [問題] ImageView + ZoomButtonsController
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
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
07/11 20:03, 4F
→
07/11 20:03, , 5F
07/11 20:03, 5F
推
07/11 21:48, , 6F
07/11 21:48, 6F
→
07/11 21:48, , 7F
07/11 21:48, 7F
推
07/11 21:51, , 8F
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):