円、円弧、線を使用して、キャンバスに基本的なスミスチャートを描きました。さまざまなサイズのエミュレーター画面でアプリを実行しましたが、すべてが完全に機能しますが、実際のデバイス(Androidレベル2.3.5)で試してみると、グラフが正しく表示されません。つまり、一部のオブジェクトが適切ではありません。
コードを書いている間、アプリがすべてのデバイスで正しく動作するように、ピクセルを使用する代わりに、パラメーターにget.Width()とget.Height()を使用するように注意しました。以下は私が使用したコードの例です:
canvas.drawCircle(canvas.getWidth()*1/2, canvas.getHeight()*3/8, canvas.getWidth()*475/1000, black);
canvas.drawCircle(canvas.getWidth()*5/8, canvas.getWidth()*5/8, canvas.getWidth()*349/1000, black);
canvas.drawCircle(canvas.getWidth()*6/8, canvas.getWidth()*5/8, canvas.getWidth()*228/1000, black);
canvas.drawCircle(canvas.getWidth()*7/8, canvas.getWidth()*5/8, canvas.getWidth()*103/1000, black);
arc0.set(canvas.getWidth()/2, canvas.getHeight()*-139/700, canvas.getWidth()*100/69, canvas.getHeight()*3/8);
arc1.set(canvas.getWidth()*-6/112, canvas.getHeight()*-80/100, canvas.getWidth()*195/100, canvas.getHeight()*72/192);
arc2.set(canvas.getWidth()*7/10, canvas.getHeight()*70/700, canvas.getWidth()*125/100, canvas.getHeight()*3/8);
arc3.set(canvas.getWidth()/2, canvas.getHeight()*3/8, canvas.getWidth()*100/69, canvas.getHeight()*91/96);
arc4.set(canvas.getWidth()*-8/112, canvas.getHeight()*3/8, canvas.getWidth()*195/100, canvas.getHeight()*150/100);
arc5.set(canvas.getWidth()*7/10, canvas.getHeight()*3/8, canvas.getWidth()*125/100, canvas.getHeight()*65/100);
グラフは、私が試したすべての異なるサイズのエミュレーター画面でうまく整列しているので、実際のデバイスで整列しない理由を誰でも教えてくれるでしょう。ありがとう