क्या आपको पता है कि Google Fit एप्लिकेशन में से एक की तरह गोलाकार प्रगति पट्टी कैसे बनाई जा सकती है? निचे इमेज की तरह।
क्या आपको पता है कि Google Fit एप्लिकेशन में से एक की तरह गोलाकार प्रगति पट्टी कैसे बनाई जा सकती है? निचे इमेज की तरह।
जवाबों:
आप इस मंडल प्रगति लाइब्रेरी को आज़मा सकते हैं
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"/>
इसे स्वयं बनाना आसान है
अपने लेआउट में 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();
ऊपर दिए गए उदाहरणों के विपरीत, यह चिकनी एनीमेशन देता है।