जवाबों:
Res / drawable फ़ोल्डर में, इसे डालें:
progress.xml
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="0"
android:toDegrees="360">
<shape
android:shape="ring"
android:innerRadiusRatio="3"
android:thicknessRatio="8"
android:useLevel="false">
<size
android:width="76dip"
android:height="76dip" />
<gradient
android:type="sweep"
android:useLevel="false"
android:startColor="#447a29"
android:endColor="#00ffffff"
android:angle="0"/>
</shape>
</rotate>
सेट startColor
और endColor
अपनी पसंद के अनुसार।
अब सेट है कि progress.xml
में ProgressBar
की backgound।
<ProgressBar
android:id="@+id/ProgressBar01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateDrawable="@drawable/progress"
/>
एपीआई 21 और उच्चतर के लिए। बस अनिश्चितकालीन संपत्ति सेट करें। पसंद:
android:indeterminateTint="@android:color/holo_orange_dark"
प्री-एपीआई 21 उपकरणों का समर्थन करने के लिए:
mProgressSpin.getIndeterminateDrawable()
.setColorFilter(ContextCompat.getColor(this, R.color.colorPrimary), PorterDuff.Mode.SRC_IN );
style="?android:attr/progressBarStyle"
काम नहीं करता
1.First संसाधन के तहत drawable फ़ोल्डर में एक xml फ़ाइल बनाएँ
नाम "प्रगति। xml"
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360" >
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="8"
android:useLevel="false" >
<size
android:height="76dip"
android:width="76dip" />
<gradient
android:angle="0"
android:endColor="color/pink"
android:startColor="@android:color/transparent"
android:type="sweep"
android:useLevel="false" />
</shape>
</rotate>
2. फिर फोलोइंग स्निपेट का उपयोग करके एक प्रगति बार बनायें
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/relativeLayout1"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:indeterminate="true"
android:indeterminateDrawable="@drawable/progress" />
आप इस कोड का उपयोग करके रंग बदल सकते हैं:
ProgressBar v = (ProgressBar) findViewById(R.id.progress);
v.getIndeterminateDrawable().setColorFilter(0xFFcc0000,
android.graphics.PorterDuff.Mode.MULTIPLY);
यदि आप ProgressDialog का प्रगति रंग बदलना चाहते हैं, तो आप इसका उपयोग कर सकते हैं:
mDilog.setOnShowListener(new OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
ProgressBar v = (ProgressBar)mDilog.findViewById(android.R.id.progress);
v.getIndeterminateDrawable().setColorFilter(0xFFcc0000,
android.graphics.PorterDuff.Mode.MULTIPLY);
}
});
डाटो के उत्तर में जोड़ने के लिए, मैं SRC_ATOP को एक बेहतर फिल्टर के रूप में खोजना चाहता हूं क्योंकि यह अल्फा चैनल का बेहतर समर्थन करता है।
ProgressBar v = (ProgressBar) findViewById(R.id.progress);
v.getIndeterminateDrawable().setColorFilter(0xFFcc0000, android.graphics.PorterDuff.Mode.SRC_ATOP);
एंड्रॉयड: indeterminateTint = "@ रंग / प्रगति बार"
styles.xml
<style name="CircularProgress" parent="Theme.AppCompat.Light">
<item name="colorAccent">@color/yellow</item>
</style>
<ProgressBar
android:layout_width="@dimen/d_40"
android:layout_height="@dimen/d_40"
android:indeterminate="true"
style="@style/Widget.AppCompat.ProgressBar"
android:theme="@style/CircularProgress"/>
परिपत्र प्रगति को अनुकूलित करने के लिए हमें कस्टम प्रगति बार दिखाने के लिए एक अनिश्चित बनाने योग्य बनाने की आवश्यकता है
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1">
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="8"
android:useLevel="false">
<size
android:height="48dip"
android:width="48dip" />
<gradient
android:centerColor="#f96047"
android:centerY="0.50"
android:endColor="#fb9c8d"
android:startColor="#f72d0c"
android:type="sweep"
android:useLevel="false" />
</shape>
</rotate>
हमें नीचे के रूप में प्रोग्रेसबार में शामिल करने योग्य बनाने की आवश्यकता है:
<ProgressBar
android:layout_width="wrap_content"
android:layout_centerInParent="true"
style="?android:attr/progressBarStyleLarge"
android:visibility="visible"
android:progressDrawable="@drawable/widget_progressbar"
android:indeterminateDrawable="@drawable/widget_progressbar"
android:layout_height="wrap_content" />
rotate
टैग पहले गायब है shape
। इसके बिना, तरक्की स्थिर होगी
मेरे लिए विषय लहजे के साथ काम नहीं कर रहा था। लेकिन इसने colorControlActivated के साथ काम किया
<style name="Progressbar.White" parent="AppTheme">
<item name="colorControlActivated">@color/white</item>
</style>
<ProgressBar
android:layout_width="@dimen/d_40"
android:layout_height="@dimen/d_40"
android:indeterminate="true"
android:theme="@style/Progressbar.White"/>
मुहम्मद रियास एम के शीर्ष मतदान जवाब के पूरक के लिए :
तेजी से घूमना
android:toDegrees="1080"
पतली अंगूठी
android:thicknessRatio="16"
हल्का सफेद
android:endColor="#80ffffff"
इस उत्तर की जाँच करें :
मेरे लिए, काम करने और रंग बदलने के लिए इन दो पंक्तियों का होना आवश्यक था:
android:indeterminateTint="@color/yourColor"
android:indeterminateTintMode="src_in"
पुनश्च: लेकिन यह केवल Android 21 से उपलब्ध है
एक शैली का उपयोग करने का प्रयास करें और colorControlActivated भी वांछित ProgressBar रंग सेट करें।
<style name="progressColor" parent="Widget.AppCompat.ProgressBar">
<item name="colorControlActivated">@color/COLOR</item>
</style>
फिर प्रोग्रेसबार की थीम को नए अंदाज में सेट करें।
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:theme="@style/progressColor"
/>
अपनी गतिविधि थीम में जोड़ें , उदाहरण के लिए आइटम colorControlActivated :
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="colorControlActivated">@color/rocket_black</item>
...
</style>
अपनी शैली को अपनी गतिविधि में प्रकट करें:
<activity
android:name=".packege.YourActivity"
android:theme="@style/AppTheme.NoActionBar"/>
आप ऐसा कर सकते हैं एक कस्टम संवाद के साथ बहुत आसानी से, अन्य उत्तरों से xml का पुन: उपयोग:
<?xml version="1.0" encoding="utf-8"?>
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="8"
android:useLevel="false" >
<size
android:height="76dip"
android:width="76dip" />
<gradient
android:angle="0"
android:endColor="@color/oceanBlue"
android:startColor="@android:color/transparent"
android:type="sweep"
android:useLevel="false" />
</shape>
बस यह करें:
public static class ModifiedProgressDialog extends ProgressDialog {
public ModifiedProgressDialog(Context context) {
super(context);
}
@Override
public void show() {
super.show();
setIndeterminateDrawable(getContext().getResources().getDrawable(R.drawable.blue_progress));
}
}
आप नीचे की तरह प्रगति के रंग को बदलने के लिए एक शैली का उपयोग कर सकते हैं
<style name="AppTheme.anyName">
<item name="colorAccent">YOUR_COLOR</item>
</style>
और नीचे की तरह प्रोग्रेसबार में इसका उपयोग करें
<ProgressBar
style="?android:attr/progressBarStyle"
android:theme="@style/AppTheme.WhiteAccent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dimen_30"
/>
आशा करता हूँ की ये काम करेगा।
उन सभी के लिए जो सोच रहे हैं कि कस्टम प्रगति की गति कैसे बढ़ाई जाए
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0"
android:toDegrees="1080"><!--HERE YOU COULD INCREASE SPEED BY SETTING TODEGRESS(1080 is 3 loops instead of 1 in same amt of time)-->
<shape android:shape="ring" android:innerRadiusRatio="3"
android:thicknessRatio="8" android:useLevel="false">
<size android:width="76dip" android:height="76dip" />
<gradient android:type="sweep" android:useLevel="false"
android:startColor="#447a29"
android:endColor="#447a29"
android:angle="0"
/>
</shape>
यह आपके Res / Values / Colors.xml से रंग मूल्य लेता है -> colorAccent यदि आप इसे बदलते हैं, तो आपका प्रगतिबार रंग aswell बदल जाता है।
सेट android:indeterminateDrawable="@drawable/progress_custom_rotate"
कस्टम सर्कुलर रिंग प्रोग्रेस बार के लिए कोड का उपयोग करें
नीचे दिए गए कोड को कॉपी करें और ड्रा करने योग्य फ़ोल्डर में "प्रगति_ कस्टम_ क्रिएट.एक्सएमएल" बनाएं
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0"
android:toDegrees="1080">
<shape android:shape="ring" android:innerRadiusRatio="3"
android:thicknessRatio="8" android:useLevel="false">
<size android:width="48dip" android:height="48dip" />
<gradient android:type="sweep" android:useLevel="false"
android:startColor="#4c737373" android:centerColor="#4c737373"
android:centerY="0.50" android:endColor="#ffffd300" />
</shape>
</rotate>
<style name="progressColor" parent="Widget.AppCompat.ProgressBar">
<item name="colorControlActivated">@color/colorPrimary</item>
</style>
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="250dp"
android:theme="@style/progressColor"
android:layout_height="250dp"
android:layout_centerInParent="true" />
आप नीचे दिए गए कोड का उपयोग करके अपना प्रगति रंग बदल सकते हैं:
progressBar.getProgressDrawable().setColorFilter(
getResources().getColor(R.color.your_color), PorterDuff.Mode.SRC_IN);