在 RIM Blackberry OS 4.6+ 中有一个新功能 - 在状态栏中显示通知图标的能力。集成应用程序使用它为用户提供快速和翔实的信息:经销商 - 未接来电,消息 - 未读消息等。
删除了无效的 ImageShack 链接
可能使用通知图标:
- 错过的活动
- RSS 更新
- 对象状态(例如天气/应用活动/gps 信号强度)
- 其他
我想发布此功能的操作指南。
在 RIM Blackberry OS 4.6+ 中有一个新功能 - 在状态栏中显示通知图标的能力。集成应用程序使用它为用户提供快速和翔实的信息:经销商 - 未接来电,消息 - 未读消息等。
删除了无效的 ImageShack 链接
可能使用通知图标:
我想发布此功能的操作指南。
要添加/修改/删除通知图标,我们可以使用ApplicationIndicator类:
表示由图标和可选数值组成的应用程序指示器。
该图标与新邮件计数器、日历提醒、未接来电计数器、安全状态等其他图标一起放置在指示器区域中。
为此,我们应该创建ApplicationIcon的实例:
应用程序图标类与应用程序指示器和应用程序消息一起使用。
它封装了图像及其绘画属性。
EncodedImage mImage = EncodedImage.getEncodedImageResource("indicator_icon.png");
ApplicationIcon mIcon = new ApplicationIcon(mImage);
然后我们应该使用 ApplicationIndicatorRegistry 注册ApplicationIndicator:
ApplicationIndicatorRegistry.register( icon , iconOnly , visible )
icon - 要在指示器区域中显示的图标
iconOnly - 指定指示器是否应仅具有图标表示并且没有值
可见- 指定指示器是否必须在初始时可见
ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
ApplicationIndicator indicator = reg.register(mIcon, false, true);
要修改图标,请使用ApplicationIndicator.setIcon方法:
ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
ApplicationIndicator appIndicator = reg.getApplicationIndicator();
appIndicator.setIcon(icon);
要修改数值,请使用ApplicationIndicator.setValue方法:
ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
ApplicationIndicator appIndicator = reg.getApplicationIndicator();
appIndicator.setValue(value);
要隐藏或显示指标,请使用ApplicationIndicator.setVisible
很可能您不希望您的应用程序指示器留在状态栏中,最好在应用程序关闭时使用ApplicationIndicatorRegistry.unregister()它。
图标:
删除了无效的 ImageShack 链接
截图:
删除了无效的 ImageShack 链接
代码:
import net.rim.blackberry.api.messagelist.ApplicationIcon;
import net.rim.blackberry.api.messagelist.ApplicationIndicator;
import net.rim.blackberry.api.messagelist.ApplicationIndicatorRegistry;
import net.rim.device.api.system.EncodedImage;
import net.rim.device.api.ui.MenuItem;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.component.Menu;
import net.rim.device.api.ui.container.MainScreen;
class Scr extends MainScreen {
EncodedImage mImageGreen = EncodedImage
.getEncodedImageResource("bb_icon_green.png");
ApplicationIcon mIconGreen = new ApplicationIcon(mImageGreen);
EncodedImage mImageRed = EncodedImage
.getEncodedImageResource("bb_icon_red.png");
ApplicationIcon mIconRed = new ApplicationIcon(mImageRed);
ApplicationIcon mIcon = mIconGreen;
public Scr() {
add(new LabelField("Use menu to:"));
add(new LabelField("Register indicator"));
add(new LabelField("Increment value"));
add(new LabelField("Decrement value"));
add(new LabelField("Switch icon"));
add(new LabelField("Unregister indicator"));
}
MenuItem menuRegister = new MenuItem("register", 0, 0) {
public void run() {
registerIndicator();
};
};
protected int mValue = 0;
MenuItem menuIncrement = new MenuItem("increment", 0, 0) {
public void run() {
mValue++;
updateValue(mValue);
};
};
MenuItem menuDecrement = new MenuItem("decrement", 0, 0) {
public void run() {
mValue--;
updateValue(mValue);
};
};
MenuItem menuSwitchIcon = new MenuItem("icon", 0, 0) {
public void run() {
mIcon = (mIcon == mIconGreen) ? mIconRed : mIconGreen;
updateIcon(mIcon);
};
};
MenuItem menuUnregister = new MenuItem("unregister", 0, 0) {
public void run() {
unregisterIndicator();
};
};
protected void makeMenu(Menu menu, int instance) {
super.makeMenu(menu, instance);
menu.add(menuRegister);
menu.add(menuIncrement);
menu.add(menuDecrement);
menu.add(menuSwitchIcon);
menu.add(menuUnregister);
}
private void registerIndicator() {
try {
ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry
.getInstance();
ApplicationIndicator indicator =
reg.register(mIcon, false, true);
} catch (Exception e) {
}
}
private void unregisterIndicator() {
try {
ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry
.getInstance();
reg.unregister();
} catch (Exception e) {
}
}
void updateValue(int value) {
try {
ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry
.getInstance();
ApplicationIndicator appIndicator =
reg.getApplicationIndicator();
appIndicator.setValue(value);
} catch (Exception e) {
}
}
void updateIcon(ApplicationIcon icon) {
try {
ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry
.getInstance();
ApplicationIndicator appIndicator =
reg.getApplicationIndicator();
appIndicator.setIcon(icon);
} catch (Exception e) {
}
}
}