黑莓机-如何使用通知的标的状态
-
13-09-2019 - |
题
在Blackberry OS4.6+有一个新特征的能力,以显示通知标在状态.综合应用程序使用它得到快速和翔实的信息用户:Dealler错过电话、信息未读消息等。
除死者保存我的链接
可能使用的通知标:
- 错过的事件
- RSS更新
- 目状况(ex。天气/应用程序的活动/gps的信号强度)
- 其他的
我要发布一个如何引导这一特征。
解决方案
ApplicationIndicator类
添加/修改/删除通知的图标,我们可以使用 ApplicationIndicator 级:
代表一个应用程序指示,包括一个图标和可选择的数值。
图标是放在指标领域以及其他人,例如新的电子邮件反,日历提醒,未接来电台,安全状况和其他人。
- 应用程序可以注册只有一个指标和已登记每次手机启动。
- 所有指标都被清除后的电话重新启动。
- 指标可能是不可见的,如果将没有任何空间的状态
- 指标尺寸取决于当前的主题和手机屏幕上的大小。
- 图标的大小而变化,从10×10至24×24.
- 如果指标是初始化时有一个大标然后是一个例外抛出。
- 指标可以有选数值通常作为一个计数器。
- 值可以是负面的,0或积极的。
- 如果指标是用作反它最好把它藏起来时,其价值等于0。
- 如果指标值是太大了,它将显示'99+'或'999+'
添加通知的图标
为此,我们应该创建的实例 ApplicationIcon:
应用标类是结合使用应用指标和应用信息。
它incapsulates图像和绘画性质。
EncodedImage mImage = EncodedImage.getEncodedImageResource("indicator_icon.png");
ApplicationIcon mIcon = new ApplicationIcon(mImage);
然后,我们应该注册ApplicationIndicator与 ApplicationIndicatorRegistry:
ApplicationIndicatorRegistry.登记册(图标, iconOnly, 可见)
图标 -一图标以显示在指标区域
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.设定值 方法:
ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
ApplicationIndicator appIndicator = reg.getApplicationIndicator();
appIndicator.setValue(value);
- 如果很大的价值是提供了然后指示灯将显示'99+'或'999+'.
隐藏或展示的指标,使用 ApplicationIndicator.setVisible
注销ApplicationIndicator
最可能的是你不想要你的程序指示,以留在状态,它的好 ApplicationIndicatorRegistry.注销() 它在程序接近。
样本应用程序
图标:
除死者保存我的链接
截图:
除死者保存我的链接
代码:
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) {
}
}
}
不隶属于 StackOverflow