こんにちは、水平スクロール フィールド マネージャーに複数の画像を追加したいと考えています。
Horizontal Field Manager の開始点は、水平方向に画面の中央です。
別の画像からのフォーカス画像の位置 (y 座標)。
フォーカスが画像から右側にスクロール画像よりも右側に変更された場合。
フォーカスが画像から左に変更された場合は、画像を画面左の全幅までスクロールします。
ただし、画像の開始点は画面中央の水平方向です。
これがそのための私のコードです
public class MainClass extends MainScreen{
private HorizontalFieldManager hManager;
private HorizontalFieldManager[] hBitmap;
int Height = Display.getHeight();
int Width = Display.getWidth();
private PictureScrollField pictureScrollField;
private String footer_images[] = new String[]
{"ajtak.jpg","assiant.jpg","astha.jpg","fox_news.jpg",
"cnbc.jpg","india_news.jpg","zee.jpg"};
private Bitmap [] bitmaps;
private ScrollEntry[] entries;
public MainClass()
{
hManager = new HorizontalFieldManager()
{
protected void sublayout(int maxWidth,int maxHeight)
{
super.sublayout(maxWidth, maxHeight);
setExtent(Width, 60);
}
};
bitmaps = new Bitmap[footer_images.length];
entries = new ScrollEntry[footer_images.length];
for(int i =0; i < footer_images.length;i++)
{
bitmaps[i] = Bitmap.getBitmapResource(footer_images[i]);
entries[i] = new ScrollEntry(bitmaps[i], "", "");
}
pictureScrollField = new PictureScrollField(36, 36);
pictureScrollField.setData(entries, 0);
pictureScrollField.setImageDistance(38);
pictureScrollField
.setHighlightStyle(HighlightStyle.ILLUMINATE);
pictureScrollField.setHighlightBorderColor(Color.GREEN);
pictureScrollField.setBackground(BackgroundFactory
.createSolidTransparentBackground(0x212424, 150));
pictureScrollField.setLabelsVisible(false);
pictureScrollField.setFocusListener(new FocusChangeListener() {
public void focusChanged(Field field, int eventType) {
if (pictureScrollField.isFocus()) {
switch (pictureScrollField.getCurrentImageIndex()) {
case 0:
setMargin(0, 0, 20, 0);
break;
case 1:
setMargin(0, 0, 20, 0);
break;
case 2:
setMargin(0, 0, 20, 0);
break;
case 3:
setMargin(0, 0, 20, 0);
break;
case 4:
setMargin(0, 0, 20, 0);
break;
case 5:
setMargin(0, 0, 20, 0);
break;
default:
break;
}
}
}
});
hManager.add(pictureScrollField);
add(hManager);
}