2011-01-18 3 views
0

他のイメージと組み合わせてイメージを動的に作成したいと思います。ダイナミックイメージを作成する

他のイメージは、プリロードされたビットマップイメージアレイからランダムに選択されています。 どうすればいいですか?

+0

表示するコードはありますか? – Neutralizer

答えて

0

Drawableの配列を使用して、各画像をラップします。描画可能な各インスタンスで、onDrawメソッドをオーバーライドすることによって、イメージをキャンバスにレンダリングする方法を指定します。

LayerDrawableクラスを使用して、すべてのドロワーブルを管理できます(便利な方法もあります)。

最終的な画像はどのようなものかはわかりませんが、1つの画像の位置/サイズが他の画像の位置/サイズに影響するように聞こえます。これは、それぞれに物理的なサイズを与える前に、すべての画像がどのようになっているかを知る必要があることを意味します。ここで

は私がどうなるのかです:

1)ビューを拡張し、マスタークラスを作成し、それが本当にあなたのイメージですドロワブル()の配列を保持し、すべての画像を考慮し右の座標を算出します。

2)それをあなたのドローアブル

3を受け取るコンストラクタを与える)を使用するビットマップのためのDrawableのを拡張するクラス(複数可)を作成します。 2つのフィールドを与えます.1つは論理的なサイズ/座標、もう1つは物理的なサイズ/座標です。論理的なものは、単にビットマップの自然な割合を読み取るので、構築時に記入する必要があります。物理的なものは後で記入されます。これらのクラスのonDrawメソッドは、物理座標の値を使用する必要があります。

4)マスターのViewクラスに、画像の論理サイズをすべて考慮した醜い数学的方法を与えます。数学的方法では、これらの値を画面の寸法とともに使用して、各画像の物理的寸法を求める必要があります。

5)各Drawableの物理属性に、数学的手法のresutlsを入力します。

6)マスターViewクラスのonDrawを、外部からレイアウトに追加するか、既にレイアウト上にある場合はinvalidate()を呼び出すことによって発生させます。

希望します。

関連する問題