شرح أداة التقييم RatingBar في الإندرويد

RatingBar تعليمي مع مثال في Android Studio

يستخدم RatingBar للحصول على التقييم من مستخدم التطبيق. يمكن للمستخدم ببساطة لمس النجوم أو سحبها أو النقر عليها لتعيين قيمة التصنيف. تقوم قيمة التصنيف دائمًا بإرجاع رقم فاصلة عائمة والذي قد يكون 1.0 ، 2.5 ، 4.5 وما إلى ذلك.

RatingBar في Android
في Android ، يعد RatingBar امتدادًا لـ ProgressBar و SeekBar والذي يظهر تصنيفًا بالنجوم. RatingBar فئة فرعية من فئة AbsSeekBar.

و  getRating() أسلوب فئة RatingBar الروبوت إرجاع عدد التصنيف.

كود RatingBar في XML:

<RatingBar
    android:id="@+id/simpleRatingBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
  

الطرق المستخدمة في  RatingBar:

getRating ():

يمكنك الحصول على رقم التصنيف من RatingBar باستخدام طريقة getRating (). تقوم هذه الطريقة بإرجاع رقم الفاصلة العائمة. أدناه نحصل على رقم التصنيف الحالي من RatingBar.

/*Add in Oncreate() funtion after setContentView()*/
    RatingBar simpleRatingBar = (RatingBar) findViewById(R.id.simpleRatingBar); // initiate a rating bar
    Float ratingNumber = simpleRatingBar.getRating(); // get rating number from a rating bar
  

getNumStars ():

يمكنك الحصول على عدد النجوم في RatingBar باستخدام طريقة getNumstars (). هذه الطريقة ترجع قيمة int. في الكود أدناه نحصل على العدد الإجمالي للنجوم لشريط RatingBar.

/*Add in Oncreate() funtion after setContentView()*/
    RatingBar simpleRatingBar = (RatingBar) findViewById(R.id.simpleRatingBar); // initiate a rating bar
    int numberOfStars = simpleRatingBar.getNumStars(); // get total number of stars of rating bar
  

السمات او الخصائص المستخدمة في RatingBar :

الآن دعنا نناقش بعض السمات المهمة التي تساعدنا على تكوين شريط التصنيف في ملف XML (التخطيط).

1. id:  id هي سمة تُستخدم لتعريف شريط التصنيف بشكل فريد.

<RatingBar
    android:id="@+id/simpleRatingBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

2. الخلفية:  تُستخدم سمة الخلفية لتعيين خلفية RatingBar. يمكننا تعيين لون أو رسم في خلفية  RatingBar .

أدناه قمنا بتعيين اللون الأحمر لخلفية  RatingBar .

<RatingBar
    android:id="@+id/simpleRatingBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#f00"/> <!-- red color for the background of rating bar-->

BackGround في RatingBar
إعداد خلفية RatingBar في فئة Java:

RatingBar simpleRatingBar = (RatingBar) findViewById(R.id.simpleRatingBar); // initiate a rating bar
    simpleRatingBar.setBackgroundColor(Color.RED); // set background color for a rating bar
  

3. numStars:  يتم استخدام السمة numStars لتعيين عدد النجوم (أو عناصر التصنيف) التي سيتم عرضها في شريط التصنيف. يظهر شريط التصنيف افتراضيًا خمس نجوم ولكن يمكننا تغييره باستخدام سمة numStars.

يجب أن يحتوي numStars على عدد صحيح مثل 1،2 وما إلى ذلك.

أدناه قمنا بتعيين عدد النجوم على 7 من RatingBar.

<RatingBar
    android:id="@+id/simpleRatingBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:numStars="7" /><!-- number of stars to be displayed-->

numStars في RatingBar Android
ضبط عدد نجوم RatingBar في فئة Java:

RatingBar simpleRatingBar = (RatingBar) findViewById(R.id.simpleRatingBar); // initiate a rating bar
    simpleRatingBar.setNumStars(7); // set total number of stars
  

4. التصنيف او التقييم RatingBar :  تحدد سمة التصنيف التصنيف الافتراضي لشريط التصنيف. يجب أن يكون رقم الفاصلة العائمة.

أدناه قمنا بتعيين التصنيف الافتراضي إلى 3.5 لشريط التصنيف.

<RatingBar
    android:id="@+id/simpleRatingBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:rating="3.5" /> <!-- default rating-->

تصنيف في RatingBar Android
تعيين التصنيف الافتراضي لشريط التصنيف RatingBar في فئة Java: 

/*Add in Oncreate() funtion after setContentView()*/
    RatingBar simpleRatingBar = (RatingBar) findViewById(R.id.simpleRatingBar); // initiate a rating bar
    simpleRatingBar.setRating((float) 3.5); // set default rating

5. المساحة المتروكة padding :  يتم استخدام خاصية المساحة المتروكة لتعيين المساحة المتروكة من اليسار أو اليمين أو أعلى أو أسفل.

  • padding يمينًا:  اضبط الحشوة من الجانب الأيمن من شريط التصنيف .
  • padding يسار:  اضبط المساحة المتروكة من الجانب الأيسر لشريط التصنيف .
  • paddingTop:  اضبط المساحة المتروكة من الجانب العلوي لشريط التصنيف .
  • paddingBottom:  اضبط المساحة المتروكة من الجانب السفلي لشريط التصنيف .
  •  الحشوة : اضبط الحشوة من جميع جوانب شريط التصنيف .

أدناه قمنا بتعيين المساحة المتروكة 20dp من جميع جوانب شريط التصنيف.

<RatingBar
    android:id="@+id/simpleRatingBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:rating="2.5"
    android:numStars="6"
    android:background="#f00"
    android:padding="20dp"/> <!--20dp padding from all the sides of rating bar-->

الحشو في RatingBar


مثال شريط التقييم في Android Studio :

فيما يلي مثال على RatingBar في Android حيث عرضنا RatingBar بخمس نجوم وزر إرسال . عندما ينقر المستخدم على قيمة الزر لإجمالي عدد النجوم وتظهر قيمة التصنيف باستخدام Toast على الشاشة. فيما يلي الإخراج النهائي ، قم بتنزيل الكود والبرنامج التعليمي خطوة بخطوة:

تحميل الكود ؟

مثال على RatingBar في Android Studio
ملاحظة مهمة: يمكننا أيضًا إنشاء شريط تصنيف مخصص في Android حيث يمكننا تغيير صور النجوم مثل نجمة ممتلئة أو فارغة. ناقشنا هذا في المثال التالي ، لذلك لا تفوتها.

الخطوة 1: قم بإنشاء مشروع جديد وقم بتسميته RatingBarExample

حدد ملف -> جديد -> مشروع جديد واملأ النماذج وانقر فوق الزر "إنهاء".

الخطوة 2: افتح res -> layout -> activity_main. xml (أو) main. xml  وأضف الكود التالي

في هذه الخطوة نفتح ملف xml ونضيف الكود لعرض شريط تصنيف بخمسة نجوم وقيمة "2" للتصنيف الافتراضي وزر إرسال واحد .

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <RatingBar
    android:id="@+id/simpleRatingBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="60dp"
    android:background="#0f0"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:rating="2" />

    <Button
    android:id="@+id/submitButton"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:background="#f00"
    android:padding="10dp"
    android:text="Submit"
    android:textColor="#fff"
    android:textSize="20sp"
    android:textStyle="bold" />
    </RelativeLayout>

الخطوة 3: افتح src -> package ->  MainActivity. جافا

في هذه الخطوة نفتح MainActivity حيث نضيف الكود لبدء زر RatingBar & ثم نقوم بالنقر فوق الزر على الزر وعرض العدد الإجمالي للنجوم والتصنيف باستخدام نخب.

package example.gb.ratingbarexample;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.RatingBar;
    import android.widget.Button;
    import android.widget.Toast;

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // initiate rating bar and a button
    final RatingBar simpleRatingBar = (RatingBar) findViewById(R.id.simpleRatingBar);
    Button submitButton = (Button) findViewById(R.id.submitButton);
    // perform click event on button
    submitButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    // get values and then displayed in a toast
    String totalStars = "Total Stars:: " + simpleRatingBar.getNumStars();
    String rating = "Rating :: " + simpleRatingBar.getRating();
    Toast.makeText(getApplicationContext(), totalStars + "\n" + rating, Toast.LENGTH_LONG).show();
    }
    });
    }


    }

مخرج :

الآن ابدأ تشغيل AVD في Emulator وقم بتشغيل التطبيق. سترى خيار التصنيف على الشاشة. حدد تقييمك وانقر فوق إرسال. سيتم عرض تقييمك على الشاشة كـ Toast.

مخرج مثال شريط التصويت


مثال شريط التصنيف المخصصRatingBar costom في Android Studio :

في المثال أدناه لشريط التصنيف المخصص في Android ، قمنا بعرض شريط تصنيف بخمس نجوم مخصصة وزر إرسال. عندما ينقر المستخدم على قيمة الزر لإجمالي عدد النجوم وتظهر قيمة التصنيف باستخدام Toast. يوجد أدناه الإخراج النهائي ، وتنزيل الكود والشرح خطوة بخطوة لشريط التصنيف المخصص.

تحميل كود المشروع  ؟

مثال شريط التصنيف المخصص في Android Studio
الخطوة 1: قم بإنشاء مشروع جديد وقم بتسميته CustomRatingBarExample

حدد ملف -> جديد -> مشروع جديد -> ثم املأ النماذج وانقر فوق الزر "إنهاء".

الخطوة 2: افتح res -> layout -> activity_main.xml (أو) main.xml وأضف الكود التالي

في هذه الخطوة ، نفتح ملف xml ونضيف الكود لعرض شريط تصنيف مخصص بخمس نجوم وقيمة "2.5" للتصنيف الافتراضي وزر إرسال واحد.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <RatingBar
    android:id="@+id/simpleRatingBar"
    style="@style/customRatingBar"
    android:layout_width="wrap_content"
    android:layout_height="60dp"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="60dp"
    android:background="#0f0"
    android:rating="2.5" />

    <Button
    android:id="@+id/submitButton"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:background="#f40"
    android:padding="10dp"
    android:text="Submit"
    android:textColor="#fff"
    android:textSize="20sp"
    android:textStyle="bold" />
    </RelativeLayout>

الخطوة 3: افتح src -> package ->  MainActivity. جافا

في هذه الخطوة ، نفتح MainActivity حيث نضيف الكود لبدء زر RatingBar & ثم ننفذ حدث انقر فوق الزر ونعرض العدد الإجمالي للنجوم والتصنيف باستخدام Toast.

package example.gb.customratingbarexample;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.RatingBar;
    import android.widget.Button;
    import android.widget.Toast;

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // initiate rating bar and a button
    final RatingBar simpleRatingBar = (RatingBar) findViewById(R.id.simpleRatingBar);
    Button submitButton = (Button) findViewById(R.id.submitButton);
    // perform click event on button
    submitButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    // get values and then displayed in a toast
    String totalStars = "Total Stars:: " + simpleRatingBar.getNumStars();
    String rating = "Rating :: " + simpleRatingBar.getRating();
    Toast.makeText(getApplicationContext(), totalStars + "\n" + rating, Toast.LENGTH_LONG).show();
    }
    });
    }

    }

الخطوة 4:  افتح res -> values -> styles xml

في هذه الخطوة نضيف الكود لعرض النجوم المخصصة للتصنيف. للقيام بذلك في ملف styles.xml هذا ، قمنا بتعيين ملف xml مخصص من drawable وقمنا بتعيين الارتفاع والعرض لهذا العنصر.

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    </style>
    <style name="customRatingBar" parent="@android:style/Widget.RatingBar">
    <item name="android:progressDrawable">@drawable/customratingstars</item>
    <item name="android:minHeight">20dip</item>
    <item name="android:maxHeight">20dip</item>
    </style>
    </resources>

الخطوة 5:  إنشاء ملف XML جديد قابل للرسم -> customratingstars.xml

في هذه الخطوة ، نقوم بإنشاء ملف XML جديد قابل للرسم ، حيث نقوم بتعيين الرموز للنجوم الممتلئة والفارغة. كما هو موضح أدناه ، فإن مقتطف الشفرة فارغ ومملوء هما رمزان مختلفان تم تعيينهما من drawable.

<?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background"
    android:drawable="@drawable/empty" />
    <item android:id="@android:id/secondaryProgress"
    android:drawable="@drawable/empty" />
    <item android:id="@android:id/progress"
    android:drawable="@drawable/filled" />
    </layer-list> 
  

المخرجات :

الآن ابدأ تشغيل AVD في Emulator وقم بتشغيل التطبيق. سترى خيار تصنيف النجوم المخصص على الشاشة.

مثال شريط التصنيف المخصص في Android Studio