Android में वृत्ताकार ProgressBar कैसे बनाएं? [बन्द है]


152

क्या आपको पता है कि Google Fit एप्लिकेशन में से एक की तरह गोलाकार प्रगति पट्टी कैसे बनाई जा सकती है? निचे इमेज की तरह।

यहाँ छवि विवरण दर्ज करें


7
मैंने हाल ही में कुछ ऐसा बनाया है। यह एक उपयोगी प्रारंभिक बिंदु हो सकता है? github.com/daentech/CircularDemo
Daentech

@ डेंटेक ग्रेट! धन्यवाद
मोहम्मद

1
किसी को भी जवाब मिला कि लोडिंग भाग के किनारों को उदाहरण में कैसे गोल किया जाता है?
सीबाई

1
@ यदि आप मेरे द्वारा बताए गए पुस्तकालय का उपयोग कर सकते हैं, तो आप अपने इच्छित भाग को प्राप्त करने के लिए अनुकूलित हो सकते हैं।
वन्नाबीगीक

2
शायद इस में सही दिशा आप इंगित कर सकते हैं github.com/grmaciel/two-level-circular-progress-bar
gmemario

जवाबों:


128

आप इस मंडल प्रगति लाइब्रेरी को आज़मा सकते हैं

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

NB: कृपया प्रगति के विचारों के लिए हमेशा समान चौड़ाई और ऊंचाई का उपयोग करें

DonutProgress:

 <com.github.lzyzsd.circleprogress.DonutProgress
        android:id="@+id/donut_progress"
        android:layout_marginLeft="50dp"
        android:layout_width="100dp"
        android:layout_height="100dp"
        custom:circle_progress="20"/>

CircleProgress:

  <com.github.lzyzsd.circleprogress.CircleProgress
        android:id="@+id/circle_progress"
        android:layout_marginLeft="50dp"
        android:layout_width="100dp"
        android:layout_height="100dp"
        custom:circle_progress="20"/>

ArcProgress:

<com.github.lzyzsd.circleprogress.ArcProgress
        android:id="@+id/arc_progress"
        android:background="#214193"
        android:layout_marginLeft="50dp"
        android:layout_width="100dp"
        android:layout_height="100dp"
        custom:arc_progress="55"
        custom:arc_bottom_text="MEMORY"/>

कैसे वे प्रगति में मान दिखा रहे हैं कि संरक्षित शून्य onProgressUpdate () {super.onProgressUpdate () पर सेटप्रोग्रेड में प्रयास कर रहे हैं; Log.d (TAG, "onProgressUpdate"); प्रगतिबेर.सेटप्रोग्रेस (प्रगतिबेर.गेटप्रोग्रेस () + जे); Log.d (TAG, "onProgressUpdate perc:" + j); updateMemoryAndCountValues (); } लेकिन इसका काम नहीं कर रहा है
इरोम

@ शीर्ष कैट मैं सर्कल प्रोग्रेस में ज़ूम की तरह एनीमेशन कैसे जोड़ सकता हूं या mikinw.blogspot.com/2013/03/glow-effect.html
user3233280

29
सबसे बड़ा लाइसेंस
radu122

19
डब्ल्यूटीएफ लाइसेंस। Haha।
11:21 पर z21

1
अनबाउंड प्रीफ़िक्स एरर प्राप्त करना
अनिमेश मंगला

338

इसे स्वयं बनाना आसान है

अपने लेआउट में ProgressBarएक विशिष्ट ड्रॉबल के साथ निम्नलिखित शामिल हैं ( ध्यान दें कि आपको इसके बजाय आयामों से चौड़ाई मिलनी चाहिए )। अधिकतम मूल्य यहां महत्वपूर्ण है:

<ProgressBar
    android:id="@+id/progressBar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:max="500"
    android:progress="0"
    android:progressDrawable="@drawable/circular" />

अब निम्नलिखित आकृति के साथ अपने संसाधनों में शामिल करने योग्य बनाएं। त्रिज्या के साथ खेलें (आप innerRadiusइसके बजाय उपयोग कर सकते हैं innerRadiusRatio) और मोटाई मान।

परिपत्र (पूर्व लॉलीपॉप या एपीआई स्तर <21)

   <shape
        android:innerRadiusRatio="2.3"
        android:shape="ring"
        android:thickness="3.8sp" >
        <solid android:color="@color/yourColor" />
   </shape>

परिपत्र (> = लॉलीपॉप या एपीआई स्तर> = 21)

    <shape
        android:useLevel="true"
        android:innerRadiusRatio="2.3"
        android:shape="ring"
        android:thickness="3.8sp" >
        <solid android:color="@color/yourColor" />
     </shape>

उपयोग स्तर एपीआई स्तर 21 (लॉलीपॉप) में डिफ़ॉल्ट रूप से "गलत" है।

एनीमेशन शुरू करें

आपके कोड में अगला आपके लेआउट ObjectAnimatorके प्रगति क्षेत्र को चेतन करने के लिए उपयोग करता है ProgessBar

ProgressBar progressBar = (ProgressBar) view.findViewById(R.id.progressBar);
ObjectAnimator animation = ObjectAnimator.ofInt(progressBar, "progress", 0, 500); // see this max value coming back here, we animate towards that value
animation.setDuration(5000); // in milliseconds
animation.setInterpolator(new DecelerateInterpolator());
animation.start();

एनीमेशन बंद करो

progressBar.clearAnimation();

ऊपर दिए गए उदाहरणों के विपरीत, यह चिकनी एनीमेशन देता है।


6
चरण हैं, यदि आप इसका पालन करते हैं, तो 99% आप परिणाम प्राप्त करते हैं।
मुर्तजा खुर्शीद हुसैन

5
एक जादू की तरह काम करता है। काश मैं इसे एक से अधिक बार बढ़ा सकता हूं
मुश्ताक जमील

2
मेरे लिए काम नहीं करता है दृश्य दिखाई नहीं दे रहा है
JMRboosties

9
मुझे नहीं पता कि आप क्या कर रहे हैं, दृश्यमान नहीं है एक पूरी समस्या का वर्णन नहीं है
मुर्तजा खुर्शीद हुसैन

6
आपका जवाब लग रहा है कि यह बहुत काम कर सकता है .. लेकिन एक तस्वीर = 1000 शब्द .. इसलिए यदि आप स्क्रीनशॉट के रूप में अपना आउटपुट जोड़ते हैं, तो यह भविष्य के उपयोगकर्ताओं के लिए उपयोगी हो सकता है - IMHO
रंजीथ कुमार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.