user-interface - personalizar - panel ajustes rapidos android
Blackberry-Cómo usar el icono de notificación en la barra de estado (2)
Clase ApplicationIndicator
Para agregar / modificar / eliminar el ícono de notificación podemos usar la clase ApplicationIndicator :
Representa un indicador de aplicación que consta de un icono y un valor numérico opcional.
El ícono se coloca en el área de indicadores junto con otros, como el nuevo contador de correo, los recordatorios de calendario, el contador de llamadas perdidas, el estado de seguridad y otros.
- La aplicación solo puede registrar un indicador y debe registrarlo cada vez que se inicie el teléfono.
- Todos los indicadores se borran al reiniciar el teléfono.
- Los indicadores pueden no ser visibles si no habrá espacio en la barra de estado
- Las dimensiones del indicador dependen del tema actual y del tamaño de la pantalla del teléfono.
- El tamaño del icono varía desde 10x10 hasta 24x24.
- Si el indicador se inicializa con un icono grande, se lanza una excepción.
- El indicador puede tener un valor numérico opcional que generalmente sirve como contador.
- El valor puede ser negativo, 0 o positivo.
- Si se utiliza el indicador como contador, es mejor ocultarlo cuando su valor es igual a 0.
- Si el valor del indicador es demasiado grande, mostrará ''99 + ''o'' 999+ ''
Agregar icono de notificación
Para esto deberíamos crear instancia de ApplicationIcon :
La clase de icono de la aplicación se utiliza junto con el indicador de la aplicación y los mensajes de la aplicación.
Incapsula la imagen y sus propiedades pictóricas.
EncodedImage mImage = EncodedImage.getEncodedImageResource("indicator_icon.png");
ApplicationIcon mIcon = new ApplicationIcon(mImage);
Luego debemos registrar ApplicationIndicator con ApplicationIndicatorRegistry :
ApplicationIndicatorRegistry.register ( icon , iconOnly , visible )
Icono : un icono que se mostrará en el área de indicadores.
iconOnly : especifica si el indicador debe tener solo una representación de iconos y ningún valor
visible : especifica si el indicador debe ser visible inicialmente
ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
ApplicationIndicator indicator = reg.register(mIcon, false, true);
Modificar el icono y el valor del indicador
Para modificar el ícono, use el método ApplicationIndicator.setIcon :
ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
ApplicationIndicator appIndicator = reg.getApplicationIndicator();
appIndicator.setIcon(icon);
Para modificar el valor del número, use el método ApplicationIndicator.setValue :
ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
ApplicationIndicator appIndicator = reg.getApplicationIndicator();
appIndicator.setValue(value);
- Si se proporciona un valor muy grande, el indicador mostrará ''99 + ''o'' 999+ ''.
Para ocultar o mostrar el indicador, use ApplicationIndicator.setVisible
Anular el registro de ApplicationIndicator
Lo más probable es que no desee que el indicador de su aplicación permanezca en la barra de estado, es mejor que ApplicationIndicatorRegistry.unregister() se cierre en la aplicación.
Aplicación de muestra
Iconos:
se eliminaron los enlaces muertos de ImageShack
Capturas de pantalla:
se eliminaron los enlaces muertos de ImageShack
Código:
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) {
}
}
}
En RIM Blackberry OS 4.6+ hay una nueva característica: la capacidad de mostrar el icono de notificación en la barra de estado. La aplicación integrada lo utiliza para proporcionar información rápida e informativa para el usuario: Distribuidor: llamadas perdidas, Mensajes, mensajes no leídos, etc.
eliminado link de ImageShack muerto
Posible uso del icono de notificación:
- eventos perdidos
- Actualizaciones RSS
- estado del objeto (ej. clima / actividad de la aplicación / fuerza de señal gps)
- otro
Me gustaría publicar una guía de instrucciones para esta función.
Este enlace puede ayudar:
Indicadores de aplicación e integración de pantalla de inicio