com.nttdocomo.ui
クラス ImageMap

Object
  |
  +--com.nttdocomo.ui.ImageMap

public class ImageMap
extends Object

イメージを縦横に並べて大きな画像として扱うイメージマップを定義します。

イメージを割り当てる単位をここではセルと呼びます。 セルのサイズは固定サイズで、コンストラクタで指定します。 セルを縦横に並べてそれぞれにイメージを割り当てることで、 ゲームの背景などに適した大きな画像を作成することができます。

どのセルにどのイメージを割り当てるかは、マップデータで指定します。 マップデータは byte の一次元配列で、 配列のインデックス(index)とセルの座標(x, y)との間には以下の関係があります。

 index = mapWidth * y + x;
 
例えば、以下のような幅(mapWidth) 10、高さ(mapHeight) 8 のイメージマップの場合、 座標 (6, 4) にある X のセルのインデックスは 10 * 4 + 6 = 46 となります。
     0   1   2   3   4   5   6   7   8   9
   +---+---+---+---+---+---+---+---+---+---+
 0 |   |   |   |   |   |   |   |   |   |   |
   +---+---+---+---+---+---+---+---+---+---+
 1 |   |   |   |   |   |   |   |   |   |   |
   +---+---+---+---+---+---+---+---+---+---+
 2 |   |   |   |   |   |   |   |   |   |   |
   +---+---+---+---+---+---+---+---+---+---+
 3 |   |   |   |   |   |   |   |   |   |   |
   +---+---+---+---+---+---+---+---+---+---+
 4 |   |   |   |   |   |   | X |   |   |   |
   +---+---+---+---+---+---+---+---+---+---+
 5 |   |   |   |   |   |   |   |   |   |   |
   +---+---+---+---+---+---+---+---+---+---+
 6 |   |   |   |   |   |   |   |   |   |   |
   +---+---+---+---+---+---+---+---+---+---+
 7 |   |   |   |   |   |   |   |   |   |   |
   +---+---+---+---+---+---+---+---+---+---+
 
イメージマップにマップデータを設定する際は、 マップデータと一緒にイメージの配列を指定します。 マップデータの配列の要素には、 イメージ配列の中のどのイメージを使用するかをイメージ配列中のインデックスで格納します。 マップデータの配列は byte の配列なので、0 から 127 まで最大 128 個のイメージを使用することができます。

マップデータの配列の要素が以下のいずれかの条件を満たす場合、 そのセルは描画されません。


また、マップの幅および高さに 0 を指定することができますが、 その状態ではイメージマップを描画しても何も描画されません。
セルに割り当てられたイメージの幅および高さがセルの幅および高さよりも大きい場合は、 セルの幅および高さを超える部分は描画されません。 また、セルに割り当てられたイメージの幅および高さがセルの幅および高さよりも小さい場合は、 セル内のイメージの幅および高さを超える部分には何も描画されません。

導入されたバージョン:
DoJa-3.5
関連項目:
Graphics.drawImageMap(ImageMap, int, int)

コンストラクタの概要
protected ImageMap()
           アプリケーションが直接このコンストラクタを呼び出してオブジェクトを生成することはできません。
  ImageMap(int cellWidth, int cellHeight)
           セルの幅と高さを指定してイメージマップを生成します。
  ImageMap(int cellWidth, int cellHeight, int mapWidth, int mapHeight, byte[] data, Image[] images)
           セルの幅と高さとマップデータを指定してイメージマップを生成します。
 
メソッドの概要
 void moveWindowLocation(int dx, int dy)
           イメージマップの中で表示する領域の幅と高さを変えずに座標だけを相対位置指定で設定します。
 void setImageMap(int mapWidth, int mapHeight, byte[] data, Image[] images)
           マップデータを設定します。
 void setWindow(int x, int y, int width, int height)
           イメージマップの中で表示する領域を設定します。
 void setWindowLocation(int x, int y)
           イメージマップの中で表示する領域の幅と高さを変えずに座標だけを設定します。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

ImageMap

protected ImageMap()
アプリケーションが直接このコンストラクタを呼び出してオブジェクトを生成することはできません。


ImageMap

public ImageMap(int cellWidth,
                int cellHeight)
セルの幅と高さを指定してイメージマップを生成します。

パラメータ:
cellWidth - セルの幅をドット単位で指定します。
cellHeight - セルの高さをドット単位で指定します。
例外:
IllegalArgumentException - 引数 cellWidth, cellHeight のどちらかまたは両方に 0 以下の値が指定された場合に発生します。

ImageMap

public ImageMap(int cellWidth,
                int cellHeight,
                int mapWidth,
                int mapHeight,
                byte[] data,
                Image[] images)

セルの幅と高さとマップデータを指定してイメージマップを生成します。 マップデータとイメージの配列は、 このコンストラクタの引数で渡された配列オブジェクトの参照をイメージマップオブジェクトが保持します。 したがって、引数で渡された配列の要素を変更すると、 マップデータやイメージも変更されます。

ウィンドウはマップと同じ大きさに初期化されます。

パラメータ:
cellWidth - セルの幅をドット単位で指定します。
cellHeight - セルの高さをドット単位で指定します。
mapWidth - マップの幅を指定します。
mapHeight - マップの高さを指定します。
data - マップデータの配列を指定します。
指定された配列の長さが mapWidth * mapHeight を超える場合、 第 (mapWidth * mapHeight) 要素以降の要素が参照されることはありません。
images - イメージの配列を指定します。
指定された配列の長さが128を超える場合、 第 128 要素以降の要素が参照されることはありません。
例外:
NullPointerException - 引数 data または引数 images に null が指定された場合に発生します。
IllegalArgumentException - 引数 cellWidth, cellHeight のいずれかまたは両方に 0 以下の値が指定された場合に発生します。
IllegalArgumentException - 引数 mapWidth, mapHeight のいずれかまたは両方に 0 未満の値が指定された場合に発生します。
IllegalArgumentException - 引数 data の配列の長さが引数 mapWidth * mapHeight よりも短い場合に発生します。
メソッドの詳細

setImageMap

public void setImageMap(int mapWidth,
                        int mapHeight,
                        byte[] data,
                        Image[] images)

マップデータを設定します。 マップデータとイメージの配列は、 このメソッドの引数で渡された配列オブジェクトの参照をイメージマップオブジェクトが保持します。 したがって、引数で渡された配列の要素を変更すると、 マップデータやイメージも変更されます。

ウィンドウはマップと同じ大きさに初期化されます。

パラメータ:
mapWidth - マップの幅を指定します。
mapHeight - マップの高さを指定します。
data - マップデータの配列を指定します。
指定された配列の長さが mapWidth * mapHeight を超える場合には、 第 (mapWidth * mapHeight) 要素以降の要素が参照されることはありません。
images - イメージの配列を指定します。
指定された配列の長さが128を超える場合には、 第 128 要素以降の要素が参照されることはありません。
例外:
NullPointerException - 引数 data または引数 images に null が指定された場合に発生します。
IllegalArgumentException - 引数 mapWidth, mapHeight のどちらかまたは両方に 0 未満の値が指定された場合に発生します。
IllegalArgumentException - 引数 data の配列の長さが引数 mapWidth * mapHeight よりも短い場合に発生します。

setWindow

public void setWindow(int x,
                      int y,
                      int width,
                      int height)
イメージマップの中で表示する領域を設定します。 領域はマップのセル単位で指定します。 Graphics.drawImageMap(ImageMap, int, int) メソッドでイメージマップを描画する際は、 ここで指定されたウィンドウ領域のセルだけが描画されます。

パラメータ:
x - 表示する領域の左上の X 座標を指定します。
y - 表示する領域の左上の Y 座標を指定します。
width - 表示する領域の幅を指定します。
height - 表示する領域の高さを指定します。
例外:
IllegalArgumentException - 引数 x, y が 0 未満の場合に発生します。
IllegalArgumentException - 引数 width, height が 0 未満の場合に発生します。
IllegalArgumentException - 引数 x と引数 width の和がマップの幅より大きい場合や、 引数 y と引数 height の和がマップの高さより大きい場合に発生します。

setWindowLocation

public void setWindowLocation(int x,
                              int y)
イメージマップの中で表示する領域の幅と高さを変えずに座標だけを設定します。 座標はマップのセル単位で指定します。 Graphics.drawImageMap(ImageMap, int, int) メソッドでイメージマップを描画する際は、 ここで指定された座標を反映したウィンドウ領域のセルだけが描画されます。

パラメータ:
x - 表示する領域の左上の X 座標を指定します。
y - 表示する領域の左上の Y 座標を指定します。
例外:
IllegalArgumentException - 引数 x, y が 0 未満の場合に発生します。
IllegalArgumentException - 引数 x とウィンドウ領域の幅の和がマップの幅より大きい場合や、 引数 y とウィンドウ領域の高さの和がマップの高さより大きい場合に発生します。

moveWindowLocation

public void moveWindowLocation(int dx,
                               int dy)
イメージマップの中で表示する領域の幅と高さを変えずに座標だけを相対位置指定で設定します。 座標はマップのセル単位で指定します。 Graphics.drawImageMap(ImageMap, int, int) メソッドでイメージマップを描画する際は、 ここで指定された座標を反映したウィンドウ領域のセルだけが描画されます。

パラメータ:
dx - 表示する領域の左上の X 座標の増分を指定します。 正の値を指定すると右に、負の値を指定すると左に移動します。
dy - 表示する領域の左上の Y 座標の増分を指定します。 正の値を指定すると下に、負の値を指定すると上に移動します。
例外:
IllegalArgumentException - 引数 dx と現在の表示位置の X 座標の和が 0 より小さい場合や、 引数 dy と現在の表示位置の Y 座標の和が 0 より小さい場合に発生します。 また、引数 dx と現在の表示位置の X 座標の和とウィンドウ領域の幅の和がマップの幅より大きい場合や、 引数 dy と現在の表示位置の Y 座標とウィンドウ領域の高さの和がマップの高さより大きい場合に発生します。


NTT DoCoMo,Inc.

本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。