BlackBerry- 상태 바에서 알림 아이콘을 사용하는 방법
-
13-09-2019 - |
문제
Rim Blackberry OS 4.6+에는 New 기능이 있습니다. 통합 응용 프로그램을 사용하여 사용자에게 빠르고 유익한 정보를 제공합니다. DEATLER- 부재중 전화, 메시지 - 읽지 않은 메시지 등.
Dead Imageshack 링크를 제거했습니다
알림 아이콘 가능성 :
- 놓친 이벤트
- RSS 업데이트
- 객체 상태 (예 : 날씨/앱 활동/GPS 신호 강도)
- 다른
이 기능에 대한 Howto Guide를 게시하고 싶습니다.
해결책
ApplicationIndicator 클래스
알림 아이콘을 추가/수정/제거하려면 사용할 수 있습니다. ApplicationIndicator 수업:
아이콘과 선택적 숫자 값으로 구성된 응용 프로그램 표시기를 나타냅니다.
아이콘은 새로운 메일 카운터, 캘린더 알림, 부재중 전화 카운터, 보안 상태 등과 같은 다른 사람들과 함께 표시기 영역에 배치됩니다.
- 응용 프로그램은 하나의 표시기 만 등록 할 수 있으며 전화가 시작될 때마다 등록해야합니다.
- 전화 재시작시 모든 표시기가 지워집니다.
- 상태 바에 공간이 없으면 표시기가 표시되지 않을 수 있습니다.
- 표시기 치수는 현재 테마 및 전화 화면 크기에 따라 다릅니다.
- 아이콘 크기는 10x10에서 24x24까지 다양합니다.
- 표시기가 큰 아이콘으로 초기화되면 예외가 발생합니다.
- 표시기는 일반적으로 카운터 역할을하는 선택적 숫자 값을 가질 수 있습니다.
- 값은 음수, 0 또는 양수 일 수 있습니다.
- 표시기가 카운터로 사용되면 값이 0과 같을 때 숨기는 것이 좋습니다.
- 표시 값이 너무 커지면 '99+'또는'999+ '가 표시됩니다.
알림 아이콘을 추가합니다
이를 위해 인스턴스를 작성해야합니다 응용 프로그램:
응용 프로그램 아이콘 클래스는 응용 프로그램 표시기 및 응용 프로그램 메시지와 함께 사용됩니다.
이미지와 그림 속성을 배출합니다.
EncodedImage mImage = EncodedImage.getEncodedImageResource("indicator_icon.png");
ApplicationIcon mIcon = new ApplicationIcon(mImage);
그런 다음 ApplicationIndicator를 등록해야합니다 ApplicationIndicatorregistry:
ApplicationIndicatorregistry.register (상, 아이콘 적으로, 보이는)
상 - 표시기 영역에 표시 할 아이콘
아이콘 적으로 - 표시기가 아이콘 표현 만 있어야하고 값이 없어야하는지 지정합니다.
보이는 - 초기에 표시기가 보이아야하는지 여부를 지정합니다
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);
- 매우 큰 값이 제공되면 표시기에 '99+'또는'999+ '가 표시됩니다.
표시기를 숨기거나 표시하려면 사용하십시오 ApplicationIndicator.set -Visible
등록되지 않은 ApplicationIndicator
아마도 당신은 당신의 앱 표시기가 상태 바에 머무르는 것을 원하지 않을 것입니다. 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) {
}
}
}