2014-11-03 85 views
1

我有一些WebView橫幅格式看起來更好的內容。我發現了一些解決方案,這些解決方案可以讓我在顯示WebView時強制實現目標,但以某種我不喜歡的方式進行橫向導向。在沒有屏幕旋轉的情況下在橫向上顯示WebView

特別是,我不認爲這是一個偉大的用戶體驗,讓實際的屏幕旋轉突然發生變化,沒有警告,也沒有要求這樣做,所以在你眼前的所有旋轉狀態,狀態欄等等從上到下移動。

我寧願將實際的屏幕旋轉留在一邊,以便它保持縱向,如果這是它目前設置的。所有需要發生的事情是WebView中的頁面橫向顯示,橫向顯示。

這可能嗎?

+0

以某種方式成爲可能。我只是想知道,從用戶的角度來看它會顯得很奇怪。如果我是用戶,我會很好,我的通知欄正在改變,但如果我看到我的通知欄在與我的網頁不同的方向,我會被抓住。 – Darpan 2014-11-03 09:43:03

+0

這是一個公平的評論,我還不確定這種替代方法只是在UI視角下旋轉webview中的網頁。我會嘗試下面的安東尼奧聰明的建議,看看哪一個更令人愉快(或不太令人不快)。另一種方法是以縱向方式顯示網頁,如果用戶側身轉動屏幕,可以使用快速Toast消息提示它可能會更好看(更適合屏幕)。 – drmrbrewer 2014-11-03 10:27:26

回答

1

您可以嘗試創建一個自定義的WebView,如:

public class VWebView extends WebView { 
    final boolean topDown = true; 

    public VWebView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    @Override 
    public void draw(Canvas canvas) { 
     if (topDown) { 
      canvas.translate(getHeight(), 0); 
      canvas.rotate(90); 
     } else { 
      canvas.translate(0, getWidth()); 
      canvas.rotate(-90); 
     } 
     canvas.clipRect(0, 0, getWidth(), getHeight(), android.graphics.Region.Op.REPLACE); 
     super.draw(canvas); 
    } 
} 

XML:

<com.my.package.VWebView 
    android:id="@+id/myview" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
</com.my.package.VWebView> 
+0

感謝您的建議。我認爲VerticalWebView(...)方法應該是VWebView(...)。當我嘗試這個時,它幾乎奏效。網頁被旋轉,但如果以縱向格式顯示,頁面(圖表)將被截斷。儘管這是一個潛在的整潔解決方案! – drmrbrewer 2014-11-03 18:20:48

+0

是的,這是我的垂直解決方案,您可以根據需要對其進行配置。 – 2014-11-03 18:25:42

+0

後續...我無法完全滿足我的需求(我認爲這是因爲我顯示的html內容是交互式的,所以也許在通過此方法旋轉後效果不佳)。不過,我認爲這是一個有效的解決方案,所以我已經標記爲這樣。對我來說,看看WebView如何以這種方式擴展來創建自定義的WebView也是非常有用的,現在我已經使用了這種自定義的WebView用於其他目的(爲了在抓取x,y後呈現WebView * WebView的尺寸)。那謝謝啦。 – drmrbrewer 2014-11-04 09:20:07

相關問題