मैं रेटिंगबार के आकार को कैसे कम कर सकता हूं?


129

मेरी गतिविधि में मेरे पास कुछ रेटिंग बार हैं। लेकिन इस पट्टी का आकार इतना बड़ा है! मैं इसे छोटा कैसे बना सकता हूं?

संपादित करें

गेब्रियल नेगट के लिए धन्यवाद, मैंने इसे निम्नलिखित शैली के साथ किया:

<RatingBar
style = "?android:attr/ratingBarStyleSmall"
android:numStars = "5"
android:rating   = "4" />

अब, आकार कम हो गया है लेकिन सितारों और रेटिंग की संख्या प्रभावी नहीं है !!! क्यों? मेरे पास 7 सितारे हैं जिनमें से 6 का चयन किया गया है।


क्या आपका मतलब सीकर से है? ऊंचाई और चौड़ाई तय करना मेरे लिए ठीक है। क्या आप यहां अपना कोड स्निपेट पोस्ट कर सकते हैं?
शैलेंद्र सिंह राजावत

मैं "एडिट" को हटाने की सिफारिश करूंगा और इसके बजाय इसे स्वीकृत उत्तर दूंगा। वह या @GabrielNegut उस तरह के समाधान को शामिल करने के लिए अपने उत्तर को संपादित कर सकता है। प्रश्नोत्तर के प्रश्न में समाधान को शामिल करना, प्रश्नोत्तर अनुभव से दूर है।
onebree

1
style="?android:attr/ratingBarStyleSmall"मेरे लिये कार्य करता है।
मुहम्मद शहजाद

जवाबों:


163

मेरे द्वारा पोस्ट किया गया मूल लिंक अब टूट गया है (केवल एक कारण है कि लिंक पोस्ट करना केवल जाने का सबसे अच्छा तरीका नहीं है)। आपको या RatingBarतो ratingBarStyleSmallएक कस्टम स्टाइल से विरासत में मिला होगा Widget.Material.RatingBar.Small(यह मानकर कि आप अपने ऐप में मटीरियल डिज़ाइन का उपयोग कर रहे हैं)।

विकल्प 1:

<RatingBar
    android:id="@+id/ratingBar"
    style="?android:attr/ratingBarStyleSmall"
    ... />

विकल्प 2:

// styles.xml
<style name="customRatingBar"   
    parent="android:style/Widget.Material.RatingBar.Small">
    ... // Additional customizations
</style>

// layout.xml
<RatingBar
    android:id="@+id/ratingBar"
    style="@style/customRatingBar"
    ... />

21
या इस शैली शैली का उपयोग कर = "? android: attr / RatingBarStyleSmall" आकार कम कर देगा।
माइटियन

1
लेकिन दाईं ओर एक बेकार अतिरिक्त गद्दी है! कैसे दूर करने के लिए ?!
डॉ। जैकी

ध्यान दें: अतिरिक्त सितारों से छुटकारा पाने के लिए चौड़ाई = "wra_content"
बनाएं

72

छोटे आकार में रेटिंग बार को बदसूरत पैडिंग के बिना कम करने के लिए बहुत संघर्ष के बाद यह मेरा समाधान था

 <RatingBar
        android:id="@+id/listitemrating"
        style="@android:attr/ratingBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleX=".5"
        android:scaleY=".5"
        android:transformPivotX="0dp"
        android:transformPivotY="0dp"
        android:isIndicator="true"
        android:max="5" />

3
मैंने असमान पैडिंग समस्या को कम करने के लिए ट्रांसपॉइंट के उपयोग के संबंध में आपके उत्तर को उकेरने के लिए लॉग इन किया। धन्यवाद!
imin

अंत में कोई और अधिक पैडिंग !!
उदय

बहुत बढ़िया जवाब! धन्यवाद!
वल्लरीबोडक

1
स्केल भाई-बहन के विचारों और असंतुलन मार्जिन और रिक्ति के संरेखण को परेशान करता है।
प्रतीक गुप्ता

63

यदि आप रेटिंग बार को छोटे आकार में दिखाना चाहते हैं, तो बस इस कोड को अपने प्रोजेक्ट में कॉपी और पेस्ट करें।

  <RatingBar
    android:id="@+id/MyRating"
    style="?android:attr/ratingBarStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/getRating"
    android:isIndicator="true"
    android:numStars="5"
    android:stepSize="0.1" />

3
Android क्या है: stepSize = "0.1"?
डार्विन


इस पृष्ठ के अंत में मेरे asnwer की भी जाँच करें।
विकासशील'

@ हैमदतारीकशाही यह अच्छा है, इसे बनाए रखें, लेकिन क्या मेरे कोड में कोई समस्या है? अगर कोई बात है तो कृपया मुझे बताएं
पीर फहीम शाह

@PirFahimShah thankyou, भाई I havent ने इस कोड की जाँच की। यदि आप उस दृष्टिकोण का अनुसरण करते हुए रेटिंग बार में सुधार कर सकते हैं और कर सकते हैं।
Developine

42

आप इसे XML कोड में सेट कर सकते हैं RatingBar, उपयोग कर सकते हैं scaleXऔर scaleYतदनुसार समायोजित कर सकते हैं। "1.0" सामान्य आकार होगा, और ".0" में कुछ भी इसे कम करेगा, "1.0" से अधिक कुछ भी इसे बढ़ाएगा।

<RatingBar
  android:id="@+id/ratingBar1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:scaleX="0.5"
  android:scaleY="0.5" />

14
इसके साथ समस्या यह है कि रेटिंगबार अभी भी उतनी ही चौड़ाई और ऊँचाई लेता है, जितना पहले आइकन्स के छोटे होने के बावजूद। यह पहले और अंतिम माउस के बगल में बाएँ और दाएँ गद्दी का एक गुच्छा है क्योंकि यह संरेखण मुद्दों का कारण बनता है। उदाहरण के लिए, यदि आप इस "XXXXX" जैसे अपने आइकन चाहते हैं, तो स्केलिंग के बाद यह इस तरह दिखाई देगा "----- XXXXX -----" जहां "-" खाली जगह है और "X" एक आइकन है । अपनी रेटिंग बार की तरह यह खाली जगह की वजह से सही करने के लिए धक्का दिया गया लगेगा तो
theDazzler

1
मुझे लगता है कि आप रिश्तेदार लेआउट का उपयोग कर रहे हैं। इसका दर्द लेकिन आप इसका उपयोग करके सही स्थिति में जाने के लिए इसे ट्विक कर सकते हैं android:layout_marginRight और इसे पसंद करने के तरीके को पसंद कर सकते हैं।
ZeWolfe15

4
बाएं जोड़ पर पैडिंग बनाए बिना स्केल प्राप्त करने के लिए एंड्रॉइड: ट्रांसफॉर्मपॉक्सएक्स = "0 डीपी"
डार्विन

37

नीचे दिए गए स्निपेट ने रेटिंगबार का आकार बदलने के लिए मेरे लिए काम किया

<RatingBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/ratingBar"
    style="?android:attr/ratingBarStyleIndicator"
    android:scaleX=".5"
    android:rating="3.5"
    android:scaleY=".5"
    android:transformPivotX="0dp"
    android:transformPivotY="0dp"
    android:max="5"/>

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


2
इस रेटिंग बार के लिए रैटिंग बार के रंग को कैसे भरें, आधा भरा, भरा हुआ और खाली रंग?
गणपत कालिया

रेटिंग पैरामीटर का उपयोग रेटिंग बार को सही भरने के लिए किया जाता है? मैंने एंड्रॉइड का उपयोग किया: रेटिंग = "3.5" इसलिए 3.5 सितारे भरे हुए हैं। आप अधिकतम 5 सेट कर सकते हैं क्योंकि xml में अधिकतम 5 सेट है। यदि आप रेटिंग बार के रंग बदलना चाहते हैं, तो आपको स्टाइल में एक स्टाइल बनाना होगा। xml इस लिंक को देखें: stackoverflow.com/a/35914622/2915785
नावेद अहमद

एंड्रॉइड के लिए कैसे: transformPivotX = "0dp" android: transformPivotY = "0dp" प्रोग्रामेटिक रूप से?
सलमान खकवानी

1
@NaveedAhmad लेकिन दाईं ओर एक बेकार गद्दी है! कैसे दूर करने के लिए ?!
डॉ। जैकी

@ Mr.Hyde raringbar की शैलियों की जाँच stackoverflow.com/a/24407907/2915785
नवीद अहमद

10

काम करने का उदाहरण

             <RatingBar
                style="@style/RatingBar"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:numStars="5"
                android:rating="3.5"
                android:stepSize="0.5" />

और इसे अपनी शैलियों में जोड़ें xml फ़ाइल

<style name="RatingBar"   
parent="android:style/Widget.Material.RatingBar.Small">
<item name="colorControlNormal">@color/primary_light</item>
<item name="colorControlActivated">@color/primary_dark</item>
</style>

इस तरह आपको न तो रेटिंगटार को अनुकूलित करने की आवश्यकता है।


9

यहां मेरे उत्तर की जांच करें । इसे प्राप्त करने का सबसे अच्छा तरीका है।

 <style name="MyRatingBar" parent="@android:style/Widget.RatingBar">
   <item name="android:minHeight">15dp</item>
   <item name="android:maxHeight">15dp</item>
   <item name="colorControlNormal">@color/white</item>
   <item name="colorControlActivated">@color/home_add</item>
</style>

और जैसे का उपयोग करें

<RatingBar
    style="?android:attr/ratingBarStyleIndicator"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:isIndicator="false"
      android:max="5"
      android:rating="3"
      android:scaleX=".8"
      android:scaleY=".8"
      android:theme="@style/MyRatingBar" />

6
<RatingBar
  style="?android:attr/ratingBarStyleIndicator"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
/>

5
क्या आप इस बात पर विस्तार से बता सकते हैं कि आप समाधान पर कैसे पहुंचे?
वनबरी

यह RatingBarबदलने की अनुमति नहीं देता है।
CopsOnRoad

3

यदि आप वेटसुम के साथ लिनियरलेआउट में रेटिंग बार का उपयोग कर रहे हैं। कृपया सुनिश्चित करें कि आपको रेटिंग बार के लिए लेआउट_वेट असाइन नहीं करना चाहिए। इसके बजाय, रिश्तेदार लेआउट के अंदर रेटिंग बार रखें और रिश्तेदार लेआउट को वजन दें। रेटिंग बार चौड़ाई लपेटें सामग्री बनाएँ।

<RelativeLayout
    android:layout_width="0dp"
    android:layout_weight="30"
    android:layout_gravity="center"
    android:layout_height="wrap_content">
        <RatingBar
            android:id="@+id/userRating"
            style="@style/Widget.AppCompat.RatingBar.Small"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:stepSize="1" />
</RelativeLayout>

3

उपयोग करना Widget.AppCompat.RatingBar, आपके पास उपयोग करने के लिए 2 शैलियाँ हैं; Indicatorऔर Smallक्रमशः बड़े और छोटे आकार के लिए। नीचे उदाहरण देखें।

<RatingBar
    android:id="@+id/rating_star_value"
    style="@style/Widget.AppCompat.RatingBar.Small"
    ... />

2

यदि आपको केवल डिफ़ॉल्ट शैली की आवश्यकता है, तो सुनिश्चित करें कि आपके पास निम्नलिखित चौड़ाई / ऊँचाई है, अन्यथा स्तम्भ गड़बड़ हो सकते हैं:

android:layout_width="wrap_content"
android:layout_height="wrap_content"

1
इस शैली शैली का उपयोग कर = "? android: attr / RatingBarStyleSmall" का आकार कम हो जाएगा
ताकतवर



0

उन लोगों के लिए जिन्होंने प्रोग्राम बार बनाया और डिफ़ॉल्ट बड़ी रेटिंग बार के बजाय छोटे रेटिंग बार सेट करना चाहते हैं

    निजी रेखीय लयआउट उत्पन्न (दृश्य मान) {
        रेखीय लयआउट रेखीय लयआउट = नया लीनियर लयआउट (getContext ());
        linearLayoutRating.setLayoutParams (नया TableRow.LayoutParams (TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_RONTENT));
        linearLayoutRating.setGravity (Gravity.CENTER);
        RatingBar RatingBar = new RatingBar (getContext (), null, android.R.attr.ratingBarStyleSmall);
        (गलत) ratingBar.setEnabled;
        आधा गाना सक्षम करने के लिए RatingBar.setStepSize (Float.parseFloat ("0.5")); //
        ratingBar.setNumStars (5);
        ratingBar.setRating (मान);
        linearLayoutRating.addView (ratingBar);
        वापसी रैखिकलूटिंग;
    }


0
 <RatingBar     android:id="@+id/id_tv_rating_bar"
                style="@style/Widget.AppCompat.RatingBar.Small"
                android:layout_width="wrap_content"
                android:layout_height="@dimen/_20sdp"
                android:layout_marginLeft="@dimen/_80sdp"
                android:numStars="5"
                android:paddingTop="@dimen/_5sdp"
                android:rating="5" />

बस style="@style/Widget.AppCompat.RatingBar.Small"यह सुनिश्चित करने के लिए काम करेंगे का उपयोग करें!


0

यह मेरे लिए काम किया।
इस छवि की जाँच करें

            android:id="@+id/ratingBar"
            style="?android:attr/ratingBarStyleIndicator"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:numStars="5"
            android:scaleX=".8"
            android:scaleY=".8"
            android:stepSize="0.5"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.543"
            app:layout_constraintStart_toEndOf="@+id/title"
            app:layout_constraintTop_toTopOf="parent" />
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.