android - meaning - हिंदी डायलॉग शायरी




एंड्रॉइड डायलॉग थीम आइकन को बहुत हल्का बनाता है (2)

मैंने ग्रहण में एक नया एप्लिकेशन बनाया, जेली बीन को लक्षित किया। यह सभी स्वचालित रूप से बनाया गया कोड है। एप्‍लीकेशन के लिए एप्‍लीकेशन थीम सेट करता है:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    . . . 

जो मूल्यों में शैलियों के लिए AppBaseTheme में अनुवाद करता है:

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

    <!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
    -->
    <style name="AppBaseTheme" parent="android:Theme.Light">
        <!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.
        -->
    </style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>

</resources>

और मान- v14 / शैलियाँ। Xml है:

<resources>

    <!--
        Base application theme for API 14+. This theme completely replaces
        AppBaseTheme from BOTH res/values/styles.xml and
        res/values-v11/styles.xml on API 14+ devices.
    -->
    <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
        <!-- API 14 theme customizations can go here. -->
    </style>

</resources>

मैंने तब पुष्टि करने से पहले एक पुष्टिकरण संवाद बॉक्स बनाया:

    case R.id.menu_quit:
        new AlertDialog.Builder(this)
        .setIcon(android.R.drawable.ic_dialog_alert)
        .setTitle(R.string.confirm_title)
        .setMessage(R.string.confirm_text)
        .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                finish();    
            }

और परिणामी संवाद बॉक्स है:

Ic_dialog_icon इतना हल्का क्यों है? यह मुश्किल से दिखाई देता है। मैं सभी चूक का उपयोग कर रहा हूं, मैंने थीम या किसी भी रंग को संशोधित नहीं किया है, क्या सिस्टम को अपनी पृष्ठभूमि के विपरीत एक आइकन wiht नहीं चुनना चाहिए? मेरे द्वारा यह कैसे किया जा सकता है?

फिक्स के साथ संपादित करें
टोमिक जानकारी के बाद मैंने android.R.rr.alertDialogIcon के लिए दस्तावेज़ीकरण पढ़ा और इस फिक्स ( setIcon () को setIconAttribute () के साथ बदल दिया)

        new AlertDialog.Builder(this)
        .setIconAttribute(android.R.attr.alertDialogIcon)
        .setTitle(R.string.confirm_title)
        .setMessage(R.string.confirm_text)
        .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {

अब संवाद इस तरह दिखता है:


यदि आप उन उपकरणों पर भी हल्के विषय का उपयोग कर रहे हैं, तो प्री-HC के लिए टॉमिक के उत्तर पर आधारित एक कार्यक्षेत्र

AlertDialog.Builder builder = ...;
if (VERSION.SDK_INT < VERSION_CODES.HONEYCOMB) {
    Drawable icon = ContextCompat.getDrawable(context, android.R.drawable.ic_dialog_alert).mutate();
    icon.setColorFilter(new ColorMatrixColorFilter(new float[] {
            -1, 0, 0, 0, 255, // red = 255 - red
            0, -1, 0, 0, 255, // green = 255 - green
            0, 0, -1, 0, 255, // blue = 255 - blue
            0, 0, 0, 1, 0     // alpha = alpha
    }));
    builder.setIcon(icon);
} else {
    builder.setIconAttribute(android.R.attr.alertDialogIcon);
}

समस्या यह है कि आप निजी संसाधन android.R.drawable.ic_dialog_alert का उपयोग कर रहे हैं।

निजी संसाधनों का उपयोग समस्याग्रस्त है, वे विभिन्न उपकरणों पर भिन्न हो सकते हैं और आप यह भी सुनिश्चित नहीं कर सकते हैं कि वे सभी उपकरणों पर मौजूद हैं। निजी संसाधनों के उपयोग से बचने के लिए सबसे अच्छा है। यदि आपको उनकी आवश्यकता है, तो आपको उन्हें एंड्रॉइड स्रोतों से कॉपी करना चाहिए और उन्हें अपने प्रोजेक्ट के संसाधनों में डालना चाहिए।

आपका संसाधन बहुत अधिक सफेद होने का सही कारण यह है कि आप संसाधन ( android.R.drawable.ic_dialog_alert ) का उपयोग कर रहे हैं जो कि मानक (गैर-होलो) थीम के लिए उपयोग किया जाता है।
लेकिन एंड्रॉइड 4.x (एपीआई स्तर 14) पर चलने वाले उपकरणों के लिए आप Holo विषय ( android:Theme.Holo.Light.DarkActionBar ) का उपयोग कर रहे हैं जो सामान्य रूप से विभिन्न संसाधनों का उपयोग कर रहा है।

होलो थीम के साथ डिफ़ॉल्ट अलर्ट आइकन android.R.id.ic_dialog_alert_holo_dark या डार्क थीम के लिए।

नोट: चूंकि एपीआई स्तर 11 में एक विशेषता android.R.attr.alertDialogIcon जो वर्तमान विषय के लिए डिफ़ॉल्ट चेतावनी संवाद आइकन को संदर्भित करता है। अपने कोड में आप इसे इस तरह से उपयोग कर सकते हैं:

case R.id.menu_quit:
    new AlertDialog.Builder(this)
    .setIconAttribute(android.R.attr.alertDialogIcon)
    .setTitle(R.string.confirm_title)
    .setMessage(R.string.confirm_text)
    .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            finish();    
        }

फिर भी मैं आपके प्रोजेक्ट के संसाधनों के लिए एंड्रॉइड स्रोतों से संसाधन की प्रतिलिपि बनाने की सलाह देता हूं क्योंकि यह एकमात्र तरीका है जिससे आप यह सुनिश्चित कर सकते हैं कि आइकन हमेशा एक जैसा दिखेगा।





alertdialog