1

円、円弧、線を使用して、キャンバスに基本的なスミスチャートを描きました。さまざまなサイズのエミュレーター画面でアプリを実行しましたが、すべてが完全に機能しますが、実際のデバイス(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);

グラフは、私が試したすべての異なるサイズのエミュレーター画面でうまく整列しているので、実際のデバイスで整列しない理由を誰でも教えてくれるでしょう。ありがとう

4

1 に答える 1

0

数値ではなくパーセンテージ値を使用する必要があります...さらに、getwidth()から取得する値の変換を調べてみてください。おそらくいくつかの値が欠落しています。

于 2012-12-24T18:42:01.877 に答える