我是新的黑莓 7 开发。 我正在做一个带有贴纸的聊天应用程序,并且我在 res 文件夹中有贴纸,现在我想将它们添加到带有隐藏/显示选项的编辑字段下方的聊天屏幕中,我不知道该怎么做。请帮帮我。我已经做了很多搜索,但没有得到答案。
您可以看到带有编辑字段的图像,旁边是我想要带有隐藏/显示的按钮,在编辑字段下方我有显示贴纸列表。请帮帮我。
我是新的黑莓 7 开发。 我正在做一个带有贴纸的聊天应用程序,并且我在 res 文件夹中有贴纸,现在我想将它们添加到带有隐藏/显示选项的编辑字段下方的聊天屏幕中,我不知道该怎么做。请帮帮我。我已经做了很多搜索,但没有得到答案。
您可以看到带有编辑字段的图像,旁边是我想要带有隐藏/显示的按钮,在编辑字段下方我有显示贴纸列表。请帮帮我。
这么多天后,我现在正在查看聊天 UI。我明白了,因为我已经使用管理器对贴纸进行了隐藏和显示。
代码如下:
VerticalFieldManager emojiiVerticalScroll = new VerticalFieldManager(USE_ALL_WIDTH);
VerticalFieldManager stickerhorizontalScroll = new VerticalFieldManager(USE_ALL_WIDTH | VERTICAL_SCROLL | VERTICAL_SCROLLBAR) {
protected void sublayout(int maxWidth, int maxHeight) {
setExtent(maxWidth, 250);
super.sublayout(maxWidth, 250);
}
};
emojiiBitmapField2 = new BitmapField(emojii1, Field.FIELD_HCENTER | Field.FOCUSABLE) {
protected void drawFocus(Graphics graphics, boolean on) {
graphics.setBackgroundColor(0xc4c4c4);
super.drawFocus(graphics, on);
};
protected boolean navigationClick(int status, int time) {
fieldChangeNotify(1);
return true;
};
};
Bitmap stickers = Bitmap.getBitmapResource("img/s0010.png");
stickers = bestFit(stickers, Display.getWidth() / 3 - 60, Display.getHeight() / 3, 0);
stikersField = new BitmapField(stickers, Field.FOCUSABLE | DrawStyle.RIGHT) {
protected void layout(int width, int height) {
setExtent(60, 60);
super.layout(60, 60);
}
protected void drawFocus(Graphics graphics, boolean on) {
graphics.setBackgroundColor(0xc4c4c4);
super.drawFocus(graphics, on);
}
protected boolean navigationClick(int status, int time) {
fieldChangeNotify(1);
return true;
}
};
从本地商店获取所有贴纸并添加到经理。
stickerhorizontalScroll.add(emojiiBitmapField2);
emojiiBitmapField2.setChangeListener(new FieldChangeListener() {
Row r;
public void fieldChanged(Field field, int context) {
openDatabse();
int i = field.getIndex() + 1;
try {
// 1. create a SQLite DB
// 3 insert a record
// 4 query the record
Statement st3 = db.createStatement("SELECT Name,ImageName FROM Smilies where id=" + i);
try {
st3.prepare();
} catch (Exception e) {
Dialog.alert("Exception" + e.getMessage());
}
Cursor c = st3.getCursor();
while (c.next()) {
r = c.getRow();
stickerImageName = r.getString(1);
}
st3.close();
closeDatabase();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
});
}
取一个布尔变量来显示和隐藏底部管理器。
stikersField.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
if (!option_sticker) {
try {
scrollToBottom();
ef.setFocus();
emojiiVerticalScroll.add(stickerhorizontalScroll);
} catch (Exception e) {
System.out.println(e.getMessage());
}
option_sticker = true;
setStatus(emojiiVerticalScroll);
} else {
option_sticker = false;
emojiiVerticalScroll.delete(stickerhorizontalScroll);
// setStatus(stickerVerticalScroll);
setStatus(emojiiVerticalScroll);
}
}
});