背景画像の上にある画像の位置を設定したい。位置は画面上のどこでもかまいません。
そのためのサンプル コード、リンク、またはチュートリアルを入手できますか?
背景画像の上にある画像の位置を設定したい。位置は画面上のどこでもかまいません。
そのためのサンプル コード、リンク、またはチュートリアルを入手できますか?
これが私がそれを行う方法です:
これは、BackgroundFactory により 4.6.0 以降で機能します。
// Create the background image and the image field to put on top
Background bg = BackgroundFactory.createBitmapBackground(Bitmap.getBitmapResource(bgImgPath);
Bitmap bmp = Bitmap.getBitmapResource(imgPath);
BitmapField imgField = new BitmapField(bmp);
// Create the field manager
VerticalFieldManager manager = new VerticalFieldManager()
{
// Overide the sublayout of the field manager to set the position of
// the image directly
protected void sublayout(int width, int height)
{
setPositionChild(imgField, positionX, positionY)
setExtent(width, height)
}
};
// Set the background of the field manager
manager.setBackground(bg);
// add the bitmap field to the field manager
manager.add(imgField);
// add the field manager to the screen
add(manager);
複数の画像の場合、レイアウトマネージャークラスを作成し、同様の手法を使用してすべての画像を必要な場所に配置できます。レイアウト マネージャーを作成して使用するためのチュートリアルがあります。掘り下げて、ここに投稿します。
4.5.0 以前を使用している場合は、レイアウト マネージャーを使用し、他の画像と同様に背景画像を追加しますが、最初に追加して下部に描画するようにします。
私が言ったように、レイアウトマネージャーのチュートリアルを見つけようとします。
Managerクラスを拡張するクラスを作成できます。ここでは、背景画像を指定したり、他の画像を目的の位置に配置したりできます。
class Test extends MainScreen
{
Test()
{
super();
Bitmap bmp = Bitmap.getBitmapResource("image1.png");
BitmapField bmpf = new BitmapField(bmp);
Mymanager obj = new Mymanager();
obj.add(bmpf);
}
}
class Mymanager extends Manager
{
final Bitmap background = Bitmap.getBitmapResource("back.png");
protected void paint(Graphics g)
{
g.drawrect(0,0,background.getWidth,background.getheight,background,0,0);
}
protected void sublayout(int width, int height)
{
Field field = getfield(0);
layoutchild(field,100,100);
setPositionchild(field,20,10);
setExtent(Display.getWidth,Display.getHeight);
}
}