Android Browser Gallery3D無法兩指手勢縮放

來源:互聯網
上載者:User

在我們三星s5pv210平台上使用的Android2.3.4內建的browser無法開啟網頁後進行兩指手勢縮放操作,只能通過連擊縮放,而其他平台都可以,後來發現問題在frameworks/base/core/java/android/webkit/WebView.java檔案的如下函數中:
    void
updateMultiTouchSupport(Context context) {      
  WebSettings settings = getSettings();      
  final PackageManager pm =
context.getPackageManager();      
  mSupportMultiTouch =
pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH) &&
settings.supportZoom() &&
settings.getBuiltInZoomControls();      
  mAllowPanAndScale = pm.hasSystemFeature(          
PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT);      
  if (mSupportMultiTouch
&& (mScaleDetector == null))      
mScaleDetector = new ScaleGestureDetector(context,new
ScaleDetectorListener());      
  } else if (!mSupportMultiTouch
&& (mScaleDetector != null))      
mScaleDetector = null;       查了下,mSupportMultiTouch這個變數是決定性因素,而其又決定於下面三大條件:    
1、PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH;    
2、settings.supportZoom();    
3、settings.getBuiltInZoomControls();    
後面兩個函數對應於mSupportZoom和mBuiltInZoomControls兩變數,查到在裡面相應的設定都會為true,故問題存在於第一點,該點取決於/system/etc/permissions/目錄下的檔案,只有其中有一個xml檔案裡含有android.hardware.touchscreen.multitouch這項就要吧,後來發現原來我們的檔案系統對應的目錄下是不存在相應的檔案,再查下去發現在我們的frameworks/base/data/etc/目錄下有檔案android.hardware.touchscreen.multitouch.xml,含有如下內容:  
  <permissions>      
  <feature
name="android.hardware.touchscreen" />      
  <feature
name="android.hardware.touchscreen.multitouch"
/>    
</permissions>    
現在,我們在編譯的指令碼中讓其每次都複製到/system/etc/permissions/目錄下即可,修改device/samsung/smdkv210/device.mk檔案,在任一項PRODUCT_COPY_FILES   frameworks/base/data/etc/android.hardware.touchscreen.multitouch.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.xml,至此就搞定了,為何只要含有上面的配置項即能讓PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH這個特性生效,首先取決於硬體,TP要支援兩點以上觸摸,再者取決於檔案frameworks/base/services/java/com/android/server/PackageManagerService.java,該檔案會讀取複製的目標目錄下的xml,並配置相應的參數。     參考網址:http://blog.csdn.net/tjd0227/article/details/6043206         http://www.bangchui.org/simple/?t8649.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.