2012-02-20 14 views
2

私はここで大きな問題を抱えています。私は人形をベッドの中に(医療用ベッドのように)描く必要があり、それはできないようです。私はカスタムビューを作成してみた後、描画を開始しました。私はcanvas.drawCirclecanvas.drawRectを使用しました。私はこの人形を描くことができましたが、私はそれをカスタムビューの高さと幅に基づいていましたので、最終的には角度を設定できませんでした。キャンバスで図形を描き、その角度を設定する最善の方法は何ですか?

次に、カスタムXML属性(サイズ)を設定しようとしましたが、その内容をラップしました。しかし、wrap_contentは機能しませんでした。常にフルスクリーンに設定されていました。だから私はこれを使うこともできませんでした。なぜなら私は体の残りの部分を設定するために頭の正しい位置が必要だからです。

私が正確に必要とするのは、いくつかの幾何学的な形を描いて、それらを個別に操作することです。同様に、ユーザは脚を動かすことを選択し、次に上のボタンを押すと、脚は角度+1を設定する。私はこれがカスタムビューとonDrawだけで可能かどうかはわかりません。私は本当に本当に本当に失われています。少なくとも、私がこれを達成するために必要なものを指摘してください。

Picture

答えて

1

キャンバスに描画するときに、描画したい図形にすべての種類の変形を実行することができます。

最初に人形全体を回転させたい場合は、人形を描く前に変形を実行する必要があります。その後、各トランスフォーム内で各ボディ部分を変換することができます。 たとえば、1脚の人形。

//save the canvas transformation state 
canvas.save(); 
    //first move the whole doll 
    canvas.translate(dollPosition.x,dollposition.y); 
    //we are now inside the coordinate system of the doll 
    //draw head (Position is now relative to the center of the doll position) 
    canvas.drawCircle(dollHeadPosition.x, dollHeadPosition.y, headRadius, paint); 
    //save the canvas to transform leg independently 
    canvas.save(); 
     canvas.translate(legPosition.x,legPosition.y); 
     //draw leg 
     canvas.drawRect(...); 
     //restore the canvas to get back to your doll coordinate system 
    canvas.restore() 
//restore canvas to get to global coordinate system 
canvas.restore() 

回転や斜行など、さまざまな変形があります。自動補完機能を使って、それらがどのように書かれているかを調べてください。

(私はそれがどのように動作するか、インデントはそれを明確に願っています)本当に良いように見えますが、私は、私はシンプルなものが必要だと思う

+0

非常にいいです、私はあなたのポストのおかげで、全体の人形を描画し、今適切にサイズを変更することができました。しかし、私は人形をどのように回転させることができるのかまだ分かりません。たとえば、頭と体を回転させたいが、左から右に回転するのではなく、右から左に回転する。これはどうすればいいですか? –

+0

私はあなたを正しく理解していれば、反時計回りの回転をしていますが、それは時計のようにしたいですか?次に、回転角度に負の値を挿入するだけです。 あなたの質問に答えた場合は、私の答えを受け入れて、あなたの新しい特定の問題について新しい質問をしてください。 – devsnd

2

ベストな方法は、それはあなたに最高のパフォーマンスを与えるが、実装するのは難しい、それは `s RenderScriptまたはOpenGL

を使用することです。 Hereは良いチュートリアルです。詳しくは5つの章があります。

+0

。私は3Dを本当に必要としません。私は何かシンプルで、より多くの2Dが必要です。これは、角度を表すためのスティックフィギュアです。彼がUPボタンを押すと、ベッドが実際に上がるからです。シンプルな人形は、ベッドが上がっているのか、それとも体であるのかを見るためのリファレンスです。私はイメージを投稿しました、それを見てください。 –

関連する問題