मैं एक काम कर समाधान कैसे उचित आकार और गद्दी साथ अनिश्चित प्रगति बार स्थापित करने के लिए मिल गया। मेरा समाधान setActionView() के साथ वर्कअराउंड का उपयोग नहीं करता है। यह अंतर्निहित प्रगति पट्टी कार्यक्षमता का समाधान है, जो मूल क्रिया पट्टी (एक्शनबारशेलॉक) द्वारा समर्थित है। प्रोग्रेस बार सेट प्रोग्रेसबार के माध्यम से सक्षम/अक्षम किया गया है INDeterminateVisibility (बूलियन) विधि। मैंने इसे एंड्रॉइड 2, 3, 4 और एलडीपीआई, एमडीपीआई, एक्सएचडीपीआई पर परीक्षण किया।
AndroidManifest.xml:
<application
...
android:theme="@style/Theme.Example">
/res/values/styles.xml:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
...
<style name="Theme.Example" parent="Theme.Sherlock">
<item name="actionBarStyle">@style/Example.ActionBar</item>
<item name="android:actionBarStyle">@style/Example.ActionBar</item>
</style>
<style name="Example.ActionBar" parent="Widget.Sherlock.ActionBar">
<item name="indeterminateProgressStyle">@style/Example.ActionBar.IndeterminateProgressBar</item>
<item name="android:indeterminateProgressStyle">@style/Example.ActionBar.IndeterminateProgressBar</item>
</style>
<style name="Example.ActionBar.IndeterminateProgressBar" parent="@android:style/Widget.ProgressBar.Large.Inverse">
<item name="android:indeterminateDrawable">@drawable/layer_list_ab_indeterminate_progress_bar</item>
<item name="android:minWidth">@dimen/ab_indeterminate_progress_bar_size</item>
<item name="android:maxWidth">@dimen/ab_indeterminate_progress_bar_size</item>
<item name="android:minHeight">@dimen/ab_indeterminate_progress_bar_size</item>
<item name="android:maxHeight">@dimen/ab_indeterminate_progress_bar_size</item>
</style>
</resources>
/res/drawable/layer_list_ab_indeterminate_progress_bar.xml:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<!--
/res/drawable-mdpi/ab_indeterminate_progress_bar asset is taken from
/sdk/platforms/android-18/data/res/mdpi/spinner_white_48.png
and its content (optical square) is resized to ~0.6 (must be even number)
/res/drawable-mdpi-v14/ab_indeterminate_progress_bar asset is taken from
/sdk/platforms/android-18/data/res/mdpi/spinner_48_outer_holo.png
and its content (optical square) is resized to 0.75
-->
<rotate
android:drawable="@drawable/ab_indeterminate_progress_bar"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="0"
android:toDegrees="360" />
</item>
</layer-list>
/res/values/dimens.xml:
<dimen name="ab_indeterminate_progress_bar_size">48dp</dimen>
अंत में मैं प्रगति बार संपत्ति बनाई।हनीकोम्ब के लिए
- /sdk/platforms/android-18/data/res/mdpi/spinner_white_48.png और पुराने
- /SDK/प्लेटफार्मों/एंड्रॉयड-18: मैं एंड्रॉयड एसडीके से इन दोनों की संपत्ति का इस्तेमाल किया आईसीएस और के लिए /data/res/mdpi/spinner_48_outer_holo.png नए
उचित आकार और गद्दी पाने के लिए, हम संपत्ति आकार बदलना होगा। मैंने spinner_white_48.png को ~ 0.6 का आकार बदल दिया। एमडीपीआई के लिए, यह 28 पीएक्स था। यह केंद्रीय सममित होने के लिए भी संख्या होनी चाहिए। मैंने केवल सामग्री का आकार बदल दिया, पूरे आइकन पर नहीं। इसलिए एमडीपीआई में आइकन अभी भी 48 पीएक्स है, लेकिन इसकी सामग्री (ऑप्टिकल स्क्वायर) छोटा है (28 पीएक्स)। आप आसानी से सामग्री का आकार बदल सकते हैं: पहले "छवि आकार" को 28px X 28px में बदलें, फिर "कैनवास आकार" को 48px X 48px पर बदलें। मैंने 0.75 पर spinner_48_outer_holo.png का आकार बदल दिया। आप नीचे संपत्ति डाउनलोड कर सकते हैं।
मैं हनीकॉम- और आईसीएस + के लिए अलग-अलग संपत्तियों का उपयोग क्यों करूं? क्योंकि अगर मैं केवल होलो संपत्तियों का उपयोग कर रहा हूं, तो हनीकॉम के साथ कुछ उपकरणों पर एनीमेशन थोड़ा सा घबराहट है।
युक्ति: आप layer_list_ab_indeterminate_progress_bar.xml पर कुछ एनीमेशन के साथ एक और आइटम जोड़ सकते हैं। उदाहरण के लिए मानक होलो प्रगति बार विपरीत दिशा और विभिन्न डिग्री सीमा के साथ 2 एनिमेशन का उपयोग करता है। एसडीके में progress_medium_holo.xml देखें।
/res/drawable-mdpi/ab_indeterminate_progress_bar.png:
/res/drawable-mdpi-v14/ab_indeterminate_progress_bar.png (शायद ही इस पृष्ठ पर दृश्यमान):
/res/drawable-hdpi/ab_indeterminate_progress_bar.png:
/res/drawable-hdpi-v14/ab_indeterminate_progress_bar.png (शायद ही इस पृष्ठ पर दृश्यमान):
/res/drawable-xhdpi/ab_indeterminate_progress_bar.png:
/res/drawable-xhdpi-v14/ab_indeterminate_progress_bar।png (शायद ही इस पृष्ठ पर दृश्यमान):
क्या कस्टम ड्रॉबल्स और आकार बदलने के बिना इसे करने का कोई तरीका नहीं है? वांछित प्रभाव लगभग आपके द्वारा वर्णित शैली में 'minWidth',' minHeight', 'maxWidth',' maxHeight' सेट करके प्राप्त किया जा सकता है, लेकिन 'प्रोग्रेसबार' कोने में दिखाई देता है (बिना 3-बिंदु ओवरफ़्लो मेनू आइकन के यह भयानक दिखता है)। स्टाइल में 'पैडिंग' सेट करना, 'layout_margin' को कोई प्रभाव नहीं पड़ता है। क्यूं कर! क्यूं कर!!?? – janakagamini