2011-02-07 14 views
0

R.drawableから.pngファイルを画面に表示したいと思います。最終的には、このイメージを動的にしたいと思います。つまり、指定されたx、y座標に基づいて位置を移動できます。Androidの動的画像? (初級質問)

私はそれを調べましたが、私は多くのオプションで混乱しています。ここに私の質問のほとんどがあります:

状況に使用する最良のデータタイプ/オブジェクトは何ですか? 画像を整理する最も良い方法は何ですか? Drawableである必要がありますか? Drawableに独自のビューが必要ですか? これを表示するには、新しいビューをメインビューに追加するだけですか?

私は数値メソッドアルゴリズムの経験がありますが、これはグラフィックスの最初のベンチャーであり、圧倒されていますので、アドバイスをいただければ幸いです。

編集 - 画像の移動のために、最終的にユーザーが制御する動きとして、動き回ります。

答えて

2

注意するように、これを行う方法はたくさんあります。 「最良の」方法は、多くのものに依存します。ボールのようなものが画面上の領域内で跳ね返るようにするには、カスタム表示を作成し、必要な座標でonDraw()メソッドで.pngを描画するのが最善の方法です。ビットマップとして.pngをBitmapFactory.decodeResource()を使用して読み込むことができます。

+0

、単に順番を把握するために、それはPNGを行くだろうBitmapFactoryとビットマップとしてロードされる、その後、ビットマップはView.onDraw()オーバーライドして、カスタムビューにロードされる、そしてそれを表示するには、それを追加mainのメソッドの1つを使用してメインビューに移動します。私はあなたの提案を正しく理解していますか? – Jake

+0

私はあなたが考えていると思うが、私はそれを違う言葉で表現したいと思う。カスタムビューを定義し、そのコンストラクタでビットマップをロードします。後でonDrawで使用するためにPaintオブジェクトを作成すると便利です。)onDrawメソッド(Canvasを渡す)では、キャンバスのdrawBitmapメソッドを使用して、必要な場所にビットマップを描画します。 –

0

テッド氏によると、後でイメージを移動したい場合は、キャンバスに描画することができます。キャンバスにはいくつかの便利な描画方法があります。 SurfaceViewも別のオプションです。だから、

pic = BitmapFactory.decodeResource(getResources(), img); 

@Override 
protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    canvas.drawBitmap(pic, x, y, null); 
    //canvas.drawRect(x, y, right, bottom, null); 
}