blackberry ब्लैकबेरी-आवेदन स्क्रीन के शीर्ष पर सिस्टम स्टेटस बार कैसे दिखाया जाए




statusbar blackberry-simulator (4)

मेरा सवाल यह आसान नहीं है, लेकिन मुझे कोई जवाब नहीं मिल पाया, हो सकता है क्योंकि मैं गलत शब्दों का प्रयोग कर रहा हूं, लेकिन मुझे कोशिश करनी चाहिए: क्या स्थिति बनाए रखने के लिए ब्लैकबेरी एप्लिकेशन (नियमित स्क्रीन घटक को बढ़ाकर) के लिए कोई रास्ता नहीं है बार दिखाई दे रहा है (स्टेटस बार द्वारा, स्पष्ट करने के लिए, मेरा मतलब है उस क्षेत्र में जहां आप बैटरी की शक्ति, नेटवर्क का नाम, सिग्नल की ताकत आदि देखते हैं)?

धन्यवाद


यहाँ कुछ नमूना कोड है सबसे पहले, एक अच्छा शीर्षक बार के लिए, यहां देखें: http://www.naviina.eu/wp/blackberry/iphone-style-field-for-blackberry/

बैटरी की ताकत छवि प्रदर्शित करने के लिए:

import net.rim.device.api.system.Bitmap;
import net.rim.device.api.system.DeviceInfo;
...
public static Bitmap getBatteryImage(){
        int batteryPercent = DeviceInfo.getBatteryLevel();
        int val = 1;
        if(batteryPercent > 80){
            val = 5;
        }else if(batteryPercent > 60 ){
            val = 4;
        }else if(batteryPercent > 40){
            val = 3;
        }else if(batteryPercent > 20){
            val = 2;
        }else {
            val = 1;
        }
        Bitmap batteryImage = Bitmap.getBitmapResource("mybattery"+val+".png");
        return batteryImage;
    }
...

आपको mybattery5.png के लिए छवियाँ mybattery1.png बनाने की आवश्यकता है, और उन्हें अपने src फोल्डर में रखें। 28x11 पिक्सल के साथ शुरू करने के लिए एक अच्छा आकार (जीआईएमपी एक अच्छी मुफ़्त छवि संपादक है)। यदि आपने Naviina.eu से शीर्षक बार कोड का उपयोग किया है, तो रंग विधि में निम्न कोड डालें, जैसे:

protected void paint(Graphics graphics) {
...
        int w = this.getPreferredWidth();
        int h = this.getPreferredHeight();
        Bitmap batteryImage = getBatteryImage();
        int batteryStartY = (h - batteryImage.getHeight()) / 2;    
        graphics.drawBitmap(w - batteryImage.getWidth(), batteryStartY, w, h,
                batteryImage, 0, 0);
...
}

कुछ बातों को ध्यान में रखकर: जब तक आप स्क्रीन को अमान्य कर देते हैं या किसी अन्य स्क्रीन पर पुश / पॉप नहीं करते हैं, तब तक छवियां ताज़ा नहीं होती हैं इसके अलावा, आप पर्ल बनाम एक कर्व या तूफान के लिए छोटी छवियां चाहते हैं।


अभी तक (मेरे अनुभव में ओएस संस्करण 4.6 तक) कोई एपीआई इस करने के लिए उजागर नहीं है, यह है कि अजीब है। आप जरूर अपनी खुद की स्टेटस बार प्रोग्राम कर सकते हैं, जितना कि कई एप्लिकेशन करते हैं, अगर आपको यह जरूरी लगता है। लेकिन आपको जानकारी इकट्ठा करने और अपने स्वयं के कार्यक्रम में कोडित तर्क के साथ स्थिति जानकारी प्रदर्शित करने के लिए है।



वास्तव में तीन जगहें हैं जो आप मेनसिन उप-कक्षा में अपनी स्थिति जानकारी डालें:

  • बैनर क्षेत्र - स्क्रीन के शीर्ष पर स्थित है
  • शीर्षक क्षेत्र - बैनर क्षेत्र से नीचे है और आमतौर पर एक अलग पृष्ठभूमि है
  • स्थिति क्षेत्र - स्क्रीन के नीचे

आप सेटबैनर (फील्ड), सेटटिटल (फ़ील्ड) और सेटस्टैट (फील्ड) का उपयोग सूचनाओं को प्रदर्शित करने के लिए करते हैं जैसा कि निम्नानुसार दिखाया गया है:

    HorizontalFieldManager hfm = new HorizontalFieldManager();
    EncodedImage logo = EncodedImage.getEncodedImageResource("img/Logo.png");       
    Bitmap bm = logo.getBitmap();

    hfm.add(new BitmapField(bm));
    hfm.add(new LabelField("Banner area"));     
    setBanner(hfm);

    setTitle(new LabelField("Title area", LabelField.FIELD_HCENTER));
    setStatus(new LabelField("Status area", LabelField.FIELD_HCENTER));

लाभ यह है कि प्रत्येक पद्धति एक क्षेत्र को एक तर्क के रूप में स्वीकार करती है और प्रोग्रामर प्रबंधकों के साथ एक जटिल क्षेत्र की रचना कर सकते हैं।