Java 如何在blackberry中使用gallery
如何在屏幕底部水平添加图像。然后将这些图像从右向左滑动,如果这些图像位于屏幕的水平中心,则从开始点开始。我应该使用什么来进行此操作 这是滚动字段水平字段管理器的链接。Java 如何在blackberry中使用gallery,java,blackberry,Java,Blackberry,如何在屏幕底部水平添加图像。然后将这些图像从右向左滑动,如果这些图像位于屏幕的水平中心,则从开始点开始。我应该使用什么来进行此操作 这是滚动字段水平字段管理器的链接。 请单击此链接,在该链接中,您将在底部的图像中看到一个图像显示具有多个图像的水平字段管理器和从其他图像向上查看的聚焦图像。要在屏幕底部水平添加图像,您需要一个显示在屏幕底部的自定义垂直字段管理器。您可以实现管理器的覆盖子布局方法。 在此VerticalFieldManager中,您添加了一个包含所有图像的HorizontalFiel
请单击此链接,在该链接中,您将在底部的图像中看到一个图像显示具有多个图像的水平字段管理器和从其他图像向上查看的聚焦图像。要在屏幕底部水平添加图像,您需要一个显示在屏幕底部的自定义
垂直字段管理器。您可以实现管理器的覆盖子布局方法。
在此VerticalFieldManager中,您添加了一个包含所有图像的HorizontalFieldManager
为了使图像从右向左滑动,我创建了一个自定义的HorizontalFieldManager
,其中添加的字段从左向右滚动
public class CustomHorizontalField extends HorizontalFieldManager{
public boolean enableMoving = false;
private int focusOnIndex = 0;
public void focusChangeNotify(int arg0) {
super.focusChangeNotify(arg0);
if(enableMoving)
{
int newFocusIndex = getFieldWithFocusIndex();
if(newFocusIndex != focusOnIndex)
{
if( (newFocusIndex - focusOnIndex )> 0 )
{
startRotation(0, getFieldCount()-1);
}else
{
startRotation(getFieldCount()-1, 0);
}
}
}else
{
focusOnIndex = getFieldWithFocusIndex();
}
}
public int getPreferredWidth() {
return Display.getWidth();
}
public int getPreferredHeight() {
return super.getPreferredHeight();
}
protected void sublayout(int maxWidth, int maxHeight) {
super.sublayout(Display.getWidth(), getPreferredHeight());
setExtent(Display.getWidth(), getPreferredHeight());
}
private void startRotation(int from,int to)
{
Field field = getField(from);
delete(field);
insert(field, to);
}
}
将图像添加到此CustomHorizontalField
并将此管理器添加到屏幕底部显示的自定义VerticalFieldManager
已编辑
下面是创建包含位图图像的自定义按钮的代码。
您可以将图像设置为类似位图字段的按钮,您可以为该按钮设置setChangeListener
,并在覆盖方法fieldChanged(field-field,int-context)
中为单击图像时的操作添加代码
public class CustomBitmapButtomField extends ButtonField{
private Bitmap activeBtn = null;
private Bitmap normalBtn = null;
private Bitmap focusBtn = null;
private int btnHeight = 0;
private int btnWidth = 0;
public CustomBitmapButtomField(Bitmap normal,Bitmap focus,Bitmap active) {
activeBtn = active;
normalBtn = normal ;
focusBtn = focus;
btnWidth = normalBtn.getWidth();
btnHeight = normalBtn.getWidth();
setMargin(0, 0, 0, 0);
setPadding(0,0,0,0);
setBorder(BorderFactory.createSimpleBorder(new XYEdges(0, 0, 0, 0)));
setBorder(VISUAL_STATE_ACTIVE, BorderFactory.createSimpleBorder(new XYEdges(0, 0, 0, 0)));
setBackground(BackgroundFactory.createSolidBackground(Color.WHITE));
}
protected void paint(Graphics graphics) {
Bitmap bitmap = null;
switch (getVisualState()) {
case VISUAL_STATE_NORMAL:
bitmap = normalBtn;
break;
case VISUAL_STATE_FOCUS:
bitmap = focusBtn;
break;
case VISUAL_STATE_ACTIVE:
bitmap = activeBtn;
break;
default:
bitmap = normalBtn;
break;
}
graphics.drawBitmap(0, 0, bitmap.getWidth(), bitmap.getHeight(), bitmap, 0, 0);
}
public int getPreferredWidth() {
return btnWidth;
}
public int getPreferredHeight() {
return btnHeight;
}
protected void layout(int width, int height) {
setExtent(btnHeight,btnHeight);
}
}
我使用那个代码,但它不起作用。当我点击图片时,它不会给出任何提示response@cyberlinks您必须覆盖BitmapField的navigationClick
方法,或者您可以创建包含位图的自定义按钮,并为按钮实现FieldChangeListener
。我已经为创建自定义按钮添加了代码,其中你好,我现在编辑我的问题并添加一个新链接,请检查此链接并帮助我。