0

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 データを返します。

4

3 に答える 3

1

「position: fixed;」によるトラブルを避けたい場合 要素では、キャンバスの親要素に、値が「hidden」の css プロパティ「overflow」を指定しないでください。

「overflow: visible;」のように定義します。親要素で。

于 2014-01-11T21:56:26.653 に答える