我想要做的典型事情,你加載數據到一個URL字符串,調用谷歌的圖表API與所有的日期,然後將其加載到Web視圖。谷歌圖表與Android Webview
問題:有人有直接「正確」的方式來做到這一點嗎?
我一直在搞這一整晚。
這裏的主要問題是:
web視圖設置爲FILL_PARENT。意思我真的不知道確切的寬度和高度。由於谷歌的API要求你提供一個寬度和高度,我究竟如何得到webviews的寬度和高度,所以我可以發送它?我想這個解決方案:
final WebView web = (WebView)findViewById(R.id.webviewgraph);
ViewTreeObserver tree = web.getViewTreeObserver();
tree.addOnGlobalLayoutListener(new OnGlobalLayoutListener()
{
@Override
public void onGlobalLayout()
{...code continues
,事情似乎是爲了,但是當我打電話web.getWidth(),web.getDrawingBounds(),或web.getMeasuredWidth(),我總是返回不止什麼屏幕實際上是成立的。現在我正在通過減去136像素的常量偏移來解決這個問題......但是,唉,這與所有設備都不一致。
有人知道使用谷歌地圖API與流體webview「正確」的方式?或者也許有人知道如何獲得視圖的實際正確寬度和高度?
感謝
UPDATE 我改變了我的代碼,這樣,現在我使用的覆蓋OnSizeChanged事件的自定義網頁流量。返回的寬度和高度...不幸的是仍然是相同的...太大了。
UPDATE 分析寬度和高度多後,我想出了這個:
int w = (int)((float)width * .667f);
int h = (int)((float)height * .667f);
到目前爲止,這是工作,我在測試設備上。爲什麼寬度和高度會比實際寬度返回1/3更多?我不知道。
嗯,你的意思是擴展webview類和覆蓋onSizeChanged事件?我可以嘗試一下。 – Peanut 2011-03-04 13:46:32
感謝您的提示,它的工作原理,但返回的寬度和高度與以前相同......在兩個維度都過大。 – Peanut 2011-03-04 15:09:46
嘿跟着你的解決方案,該應用程序正在爲所有設備工作,直到我的朋友在HTC野火測試,其中有240 * 320像素的顯示。 在他的設備上,webview的getWidth會返回正確的大小,而不是實際的1/3以上:(移除0.667f的倍數,並且webview在他的設備上看起來一如既往。但是使用此設置會使其顯示更大在我的xperia x10或galaxy上..你有沒有找到正確的靈魂? – vivek 2011-05-25 10:45:48