سؤال

في RIM BlackBerry OS 4.6+ هناك ميزة جديدة - القدرة على إظهار أيقونة الإعلام في StatusBar. تطبيق متكامل استخدامه لإعطاء معلومات سريعة وغنية بالمعلومات للمستخدم: dealler - المكالمات المفقودة، الرسائل - رسائل غير مقروءة، إلخ.

إزالة رابط imageshack الميت

الاستخدام الممكن أيقونة الإعلام:

  • الفائاة الأحداث
  • تحديثات RSS.
  • حالة الكائن (السابقين. نشاط الطقس / التطبيق / قوة إشارة GPS)
  • آخر

أرغب في نشر دليل Howto لهذه الميزة.

هل كانت مفيدة؟

المحلول

فئة Application

لإضافة / تعديل / إزالة أيقونة الإعلام يمكننا استخدامها ApplicationIndicator. صف دراسي:

يمثل مؤشر تطبيق يتكون من أيقونة وقيمة رقمية اختيارية.
يتم وضع الرمز في منطقة المؤشرات جنبا إلى جنب مع الآخرين مثل عداد البريد الجديد، وتذكير التقويم، والمكالمات المفقودة عداد، وحالة الأمن وغيرها.

  • يمكن للتطبيق تسجيل مؤشر واحد فقط ولديه تسجيله في كل مرة يبدأ فيها الهاتف.
  • يتم مسح جميع المؤشرات عند إعادة تشغيل الهاتف.
  • قد تكون المؤشرات غير مرئية إذا لم يكن هناك مساحة على StatusBar
  • تعتمد أبعاد المؤشر على السمة الحالية وحجم شاشة الهاتف.
  • حجم أيقونة يختلف من 10x10 حتى 24 × 24.
  • إذا تمت تهيئة المؤشر بأيقونة كبيرة ثم يتم طرح استثناء.
  • يمكن أن يكون المؤشر قيمة رقمية اختيارية تعمل عادة كمضبط.
  • يمكن أن تكون القيمة سلبية أو 0 أو إيجابية.
  • إذا تم استخدام المؤشر كرضا من الأفضل إخفاءه عندما تكون قيمتها تساوي 0.
  • إذا كانت قيمة المؤشر كبيرة جدا، فسيتم عرض "99 +" أو "999+"

إضافة أيقونة الإعلام

لهذا ينبغي أن نخلق مثيل ApplicationIcon.:

يتم استخدام فئة أيقونة التطبيق بالاقتران مع مؤشر التطبيق ورسائل التطبيق.
انها تزعج الصورة وخصائص اللوحة لها.

EncodedImage mImage = EncodedImage.getEncodedImageResource("indicator_icon.png");
ApplicationIcon mIcon = new ApplicationIcon(mImage);

ثم يجب علينا تسجيل ApplicationIndicator مع applicationindicatorregistry.:

ApplicationindicatorReGistry.Register (أيقونة, 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.SetValue. طريقة:

ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance();
ApplicationIndicator appIndicator = reg.getApplicationIndicator();
appIndicator.setValue(value);
  • إذا تم توفير قيمة كبيرة جدا، فسيتم عرض المؤشر '99 + 'أو' 999+ '.

لإخفاء أو عرض المؤشر، استخدم ApplicationIndicator.SeetVible.

إلغاء تسجيل ApplicationIndicator.

على الأرجح أنك لا تريد أن يبقى مؤشر التطبيق الخاص بك في StatusBar، فمن الأفضل ApplicationindicatorReGistry.unregister () عند إغلاق التطبيق.

نموذج طلب

الرموز:

إزالتها روابط images

Screenshots:

إزالتها روابط images

رمز:

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) {
        }
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top