WebView を使用して HTML を使用して GUI をロードする Android アプリケーションがあります。チャートをプロットするために Chart.js Javascript ライブラリを使用してチャートを描画する <canvas> 要素があります。3つのデバイスでテストされました。そのうちの 2 つ (Android 2.2 および 2.6) では問題なく動作しますが、Android の新しいバージョン (4.1.2) ではキャンバスが 2 倍になります: すべてのグラフがキャンバスに 2 回表示され、そのうちの 1 つが少し上に移動しますそして左へ。
キャンバスの問題は何ですか?レンダリングされるものが 2 倍になるのはなぜですか? 一度だけレンダリングするにはどうすればよいですか?
コードは次のとおりです。
HTML:
<canvas id="graph_canvas"></canvas>
JavaScript:
var canvas=document.getElementById("graph_canvas");
canvas.height=200;
canvas.width=200;
var graphSelection=document.getElementById("graphSelection");
var ctx = canvas.getContext("2d");
var data_=JSON.parse(JI.getGraphData(graphSelection.value));
var myNewChart = new Chart(ctx).Line(data_);
graphSelection がチャートを選択する <select> 要素である場合、JI.getGraphData は Chart.js の JSON データを返します。