2013-05-07 46 views
3

我正在使用webview.loadUrl()將視頻url加載到webview中。播放器編碼在html本身,所以我只需要加載到web視圖的網址。WebView無法正確定位方向更改

萬一如果我不給android:configChanges =「orientation」在我的清單中一切正常。 webview會根據方向更改正確調整大小,並調整視頻以適當地適合屏幕,然後重新開始視頻。

因此,我在清單中給出了android:configChanges =「orientation」,以便視頻不會重新加載。現在,雖然視頻不會重新加載並繼續播放,但視頻/網絡視圖不能正確調整大小,並且如果設備最初處於縱向狀態,然後更改爲橫向,則視頻的一半會熄滅。如果設備最初處於橫向模式,然後更改爲縱向模式,則只使用屏幕的一半。

請回復,如果你能想出辦法或有任何建議。

回答

2

* 如果configchanges =「方向」 - 不指定 * android系統的處理變化和重新佈局,所以剛開始從創建的佈局和視頻負載。

if android:configchanges =「orientation」, - 這告訴系統該活動將通過它自己處理方向更改。 所以,Android系統不會刷新加載佈局。所以視頻繼續播放。父佈局的寬度不會改變。因此縱向模式下的寬度用於橫向。所以,你的webview似乎很小。

您需要重寫活動中的onconfigurationchanged()並處理方向更改。 您需要指定版面佈局的佈局。

@Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 

     // Checks the orientation of the screen 
     if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
      Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); 
      // for example the width of a layout 
      int width = 300; 
      int height = LayoutParams.WRAP_CONTENT; 
      WebView childLayout = (WebView) findViewById(R.id.webview); 
      childLayout.setLayoutParams(new LayoutParams(width, height)); 
     } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
      Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); 
     } 
    } 
+0

感謝您的回覆我會讓你知道它是否工作 – user2041902 2013-05-08 06:04:08

+0

新的LayoutParams(寬度,高度)不適用於小於11的api級別。所以我嘗試LinearLayout.LayoutParams(寬度,高度)的web視圖以及佈局我已經放置了webView,但問題仍然存在 – user2041902 2013-05-09 06:06:11

+0

@sowmia如果因爲不能發表評論而無法溝通,請發送郵件到我的gmail ID [email protected] – pvn 2013-05-09 06:51:39

0

只是將下面的行添加到您的活動清單文件:

<activity android:configChanges="orientation|screenSize"> 
1

嘗試:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    webView.setLayoutParams(new RelativeLayout.LayoutParams(
         ViewGroup.LayoutParams.WRAP_CONTENT, 
         ViewGroup.LayoutParams.WRAP_CONTENT)); 
} 
0

面臨着同樣的問題。與據我所看到的最好的辦法

@Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 

     DisplayMetrics displayMetrics = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 
     int height = displayMetrics.heightPixels; 
     int width = displayMetrics.widthPixels; 
     mWebview.setLayoutParams(new LinearLayout.LayoutParams(
       width, 
       height-100)); 

    } 
0

解決這個問題,必須有H5頁面一定的誤差,similar resize problem

只要使用其他應用程序(如Chrome瀏覽器)測試您的網址。