تغییر تصویر RatingBar در اندروید

تصویرRatingBar قلب

ویدجت RatingBar چیست؟

یکی از ویدجتهای جالب در اندروید RatingBar می باشد که به کاربر این قابلیت را می دهد تا آنرا لمس یا درگ کرده و به عدد مورد نظر خود تغییر دهد. که این تغییر بصورت شکل نمایش داده می شود.

تغییر تصویر RatingBar

بصورت پیش فرض تصاویر مربوط به RatingBar بصورت ستاره می باشند اما می توان این تصاویر را تغییر داد. در این آموزش می خواهیم نحوه تغییر تصویر در RatingBar را توضیح دهیم. بصورت مثال می خواهیم بجای نمایش ستاره، از تصویر قلب استفاده کنیم:

برای اینکار نیاز است تا ابتدا تصاویر مورد نظر خود را بسازیم. برای اینکار پیشنهاد ما این است که از روش معرفی شده در آموزش چگونه تصاویر اندروید را ایجاد کنیم، استفاده کنید و تصویر قلب (می توانید از تصویر قلب داخل clipboard استفاده نمایید) را برای ابعاد۳۲*۳۲dp با پدینگ ۸dp و برای دو رنگ خاکستری و قرمز آماده نمایید.  سپس تصاویر به دست آمده را طبق آموزش در برنامه کپی نمایید.

در این آموزش نام تصاویر را بصورت زیر فرض کرده ایم:

  • قلب قرمز:ic_heart_filled
  • قلب خاکتسری: ic_heart_empty

حال آماده هستیم تا بقیه مراحل را انجام دهیم.

دو روش سخت و آسان برای اینکار وجود دارد. یکی با تغییر در استایل RatingBar و دیگری با تغییر در نحوه پیشرفت در RatingBar که ما در اینجا روش ساده را معرفی می کنیم.

در واقع RatingBar یک نوع نوار پیشرفت یا ProgressBar می باشد که برای نمایش پیشرفت از تصاویر استفاده می کند. حال ما با تغییر ویژگی progressDrawable مربوط به RatingBar می توانیم تصاویر مورد نظر خود را به جای تصاویر پیش فرض (که ستاره می باشند) معرفی نماییم.

برای اینکار ابتدا در شاخه drawable یک فایل با محتوای زیر ایجاد کرده و آنرا با نام heart_ratingbar ذخیره نمایید.

<?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/ic_heart_empty"/>

    <item
        android:id="@android:id/secondaryProgress"
        android:drawable="@drawable/ic_heart_empty"/>

    <item
        android:id="@android:id/progress"
        android:drawable="@drawable/ic_heart_filled"/>

</layer-list>
heart_ratingbar

در این کد یک رسم کردنی (drawble) تعریف کرده ایم که برای شناسه های “پشت زمینه” و “در حال پیشرفت” از تصویر قلب خاکستری، برای پیشرفت از تصویر قلب قرمز استفاده می نماید.

سپس کافیست تا این رسم کردنی را بعنوان ویژگی progressDrawable به RatingBar خود نسبت دهیم. با استفاده از کد زیر:

<RatingBar
    android:id="@+id/ag_rb_hearts"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:isIndicator="true"
    android:numStars="5"
    android:progressDrawable="@drawable/heart_ratingbar"
    android:rating="3.5"
    android:stepSize=".5" />
نحوه نسبت دادن به پراگرس بار

به همین سادگی می توانید از این قابلیت اندروید برای نمایش موارد مختلفی استفاده نمایید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *