首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Android 對第三方 SurfaceView(高德/百度地圖)實現鏡像翻轉

     編輯:程式設計疑難解答

難點

地圖 SDK 內部使用 `SurfaceView`/`TextureView` 繪製,不走 `View.onDraw()`,普通 `setScaleX(-1)` 或 `Canvas` 矩陣變換無效。

解決方案:高德 TextureMapView

高德地圖 SDK 提供 `TextureMapView`(基於 `TextureView`),支援 View 層級動畫與變換:

TextureMapView mapView = new TextureMapView(context);
mapView.setScaleY(-1f); // 垂直鏡像
// 或
mapView.setScaleX(-1f); // 水平鏡像

百度地圖暫無對應 `TextureMapView`,若需鏡像可考慮:

  • 離屏渲染至 `Bitmap` 再翻轉繪製(效能差)。
  • 要求 SDK 廠商提供 `TextureView` 版本。

注意

鏡像後觸摸事件座標需同步變換,否則點擊偏移。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved