android - एंड्रॉइड लॉलीपॉप नेविगेशन बार रंग बदलें





colors android-5.0-lollipop navigationbar (6)


आप इसे style.xml फ़ाइल \ app \ src \ main \ res \ values ​​\ styles.xml में सीधे बदल सकते हैं

पुराने संस्करणों पर यह काम, मैं इसे किटकैट में बदल रहा था और यहां आ गया।

मेरे ऐप में मुझे नीचे नेविगेशन बार रंग बदलने की जरूरत है। मैंने कई पोस्ट देखी लेकिन समाधान के साथ नहीं मिल सका। मैं appCompat लाइब्रेरी का उपयोग कर रहा हूँ। कृपया मदद की ज़रूरत है। अग्रिम में धन्यवाद।

V21 / styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light">
       <item name="android:windowBackground">@drawable/bgpreview</item>
       <item name="android:colorPrimary">@color/MyColor</item>
       <item name="android:colorPrimaryDark">@color/MyColor</item>
       <item name="android:windowContentOverlay">@null</item>
       <item name="android:textColorPrimary">@color/MyColor</item>
       <item name="colorAccent">@color/MyColor</item>
       <!-- darker variant for the status bar and contextual app bars -->
       <item name="android:windowContentTransitions">true</item>
       <item name="android:windowAllowEnterTransitionOverlap">true</item>
       <item name="android:windowAllowReturnTransitionOverlap">true</item>
       <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
       <item name="android:windowSharedElementExitTransition">@android:transition/move</item>

       <item name="windowActionBar">false</item>
       <item name="android:textAllCaps">false</item>

</style>



यह शैलियों.एक्सएमएल के अंदर किया जा सकता है

<item name="android:navigationBarColor">@color/theme_color</item>

या

window.setNavigationBarColor(@ColorInt int color)

http://developer.android.com/reference/android/view/Window.html#setNavigationBarColor(int)

ध्यान दें कि एंड्रॉइड लॉलीपॉप में विधि पेश की गई थी और एपीआई संस्करण <21 पर काम नहीं करेगी।

दूसरा तरीका (किटकैट पर काम करता है) विंडो में ट्रांस्लुसेन्ट नेविगेशन को मैनिफेस्ट में सही करने के लिए सेट करना है और नेविगेशन बार के नीचे एक रंगीन दृश्य रखना है।




प्रोग्रामेटिक रूप से इसे कैसे करें यहां बताया गया है:

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {                
   getWindow().setNavigationBarColor(getResources().getColor(R.color.your_awesome_color));
}

कॉम्पैट लाइब्रेरी का उपयोग करना:

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.primary));
}

मानों में xml के साथ इसे कैसे करें- v21 / style.xml फ़ोल्डर:

<item name="android:navigationBarColor">@color/your_color</item>



नेविगेशन बार रंग बदलने के कुछ तरीके यहां दिए गए हैं।

एक्सएमएल द्वारा

1- मूल्य-v21 / style.xml

<item name="android:navigationBarColor">@color/navigationbar_color</item>

या यदि आप इसे केवल मान / फ़ोल्डर का उपयोग करना चाहते हैं-

2- मूल्य / style.xml

<resources xmlns:tools="http://schemas.android.com/tools">

<item name="android:navigationBarColor" tools:targetApi="21">@color/navigationbar_color</item>

आप प्रोग्रामिंग द्वारा नेविगेशन बार रंग भी बदल सकते हैं।

 if (Build.VERSION.SDK_INT >= 21)
    getWindow().setNavigationBarColor(getResources().getColor(R.color.navigationbar_color));

कॉम्पैट लाइब्रेरी का उपयोग करके-

if (Build.VERSION.SDK_INT >= 21) {
    getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.primary));
}

कृपया अधिक जानकारी के लिए लिंक खोजें- http://developer.android.com/reference/android/view/Window.html#setNavigationBarColor(int)




आप थीम संपादक का उपयोग करके अपनी थीम को संशोधित करके भी संशोधित कर सकते हैं:

टूल्स -> एंड्रॉइड -> थीम एडिटर

फिर, आपको अपने .xml या .class फ़ाइलों में कुछ अतिरिक्त सामग्री डालने की भी आवश्यकता नहीं है।




मेरे दो सेंट - एनबी यह एक डिवाइस (गलती) अद्वितीय आईडी के लिए है - इंस्टॉलेशन नहीं, जैसा एंड्रॉइड डेवलपर्स के ब्लॉग में चर्चा की गई है ।

ध्यान दें कि @emmby द्वारा प्रदान किया गया solution प्रति एप्लिकेशन आईडी में वापस आ जाता है क्योंकि SharePreferences प्रक्रियाओं में सिंक्रनाइज़ नहीं होते हैं ( here और here देखें )। तो मैंने इसे पूरी तरह से टाल दिया।

इसके बजाय, मैंने एनम में एक (डिवाइस) आईडी प्राप्त करने के लिए विभिन्न रणनीतियों को समाहित किया - एनम स्थिरांक के क्रम को बदलने से आईडी प्राप्त करने के विभिन्न तरीकों की प्राथमिकता प्रभावित होती है। पहली गैर-शून्य आईडी लौटा दी जाती है या अपवाद फेंक दिया जाता है (अच्छे जावा प्रथाओं के अनुसार शून्य अर्थ नहीं है)। तो उदाहरण के लिए मेरे पास टेलीफ़ोन पहला है - लेकिन एक अच्छी डिफ़ॉल्ट पसंद ANDROID_ID बीटा होगी:

public static String getDeviceId(Context ctx)
{
    TelephonyManager tm = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);

    String tmDevice = tm.getDeviceId();
    String androidId = Secure.getString(ctx.getContentResolver(), Secure.ANDROID_ID);
    String serial = null;
    if(Build.VERSION.SDK_INT > Build.VERSION_CODES.FROYO) serial = Build.SERIAL;

    if(tmDevice != null) return "01" + tmDevice;
    if(androidId != null) return "02" + androidId;
    if(serial != null) return "03" + serial;
    // other alternatives (i.e. Wi-Fi MAC, Bluetooth MAC, etc.)

    return null;
}




android colors android-5.0-lollipop navigationbar