این rating bar چطور طراحی شده؟
شما میتونید یه Layout خالی در صفحه داشته باشید و برای نمایش دادن این RatingBar بصورت داینامیک قسمت مربوط به String سمت راست اون رو با گزینه های دلخواه پر کنید و سمت چپ تون رو میتونید با توجه به یک int تغییر رنگ بدید و اون View ها میتونه TextView باشه نمونه کد رو میتونید توی این تاپیک ببینید (قطعه کد آخر) شما باید از یک لایه XML آماده که توی اون یک لایه قرار داده و توی اون لایه شش TextView کنار هم قرار داره و شما یک کلاس دارید بصورت زیر ، پس فقط یکی از سطر هارو توی Layout برای خودتون طراحی کنید
class Data {
String caption = "";
int rating
}
به تعدادی که میخواید گزینه در صفحه نمایش بدید یک ایتم از کلاس بالا رو بسازید و در آرایه قرار بدید <
ArrayList<Data> array = new ArrayList<Data>();
Data data = new Data();
data.caption = "کیفیت پخت";
data.rating = 5;
array.add(data);
بعد از ساخته شدن اطلاعات لازم و اینکه شما از قبل XML اماده رو دارید متونید اون رو توی صفحه نمایش بدید
ArrayList<TextView> ratingArray = new ArrayList<TextView>();
for(Data data:array){
LinearLayout layouRating = (LinearLayout) G.inflater.inflate(R.layout.xml_rating_view, null);
((TextView) layouRating.findViewById(R.id.txtcaption)).setText(data.caption);
ratingArray.add( ((TextView) layouRating.findViewById(R.id.txtRating1)) )
ratingArray.add( ((TextView) layouRating.findViewById(R.id.txtRating2)) )
ratingArray.add( ((TextView) layouRating.findViewById(R.id.txtRating3)) )
ratingArray.add( ((TextView) layouRating.findViewById(R.id.txtRating4)) )
ratingArray.add( ((TextView) layouRating.findViewById(R.id.txtRating5)) )
for(int i = 0 ; i < data.rating; i++){
ratingArray.get(i).textBackgroundColor(Color.ParseColor(#CF000F));
}
layout.addView(layouRating);
}
اگر کد رو میخواید کپی و پیست کنید احتمالا مشکل Syntax داره و همینطوری نوشتم کد رو غلط هاشو خودتون اصلاح کنید ، شما میتونید رنگ مربوط برای ست شدن بصورت RatingBar رو هم در کلاس Data اضافه کنید و رنگ رو اونجا بدید و بعد توی حلقه for اخر که به تعداد رنگ ست میشه میتونید رنگ های متفاوتی برای هر ایتم داشته باشید
class Data {
String caption = "";
int rating = 0;
String color = "#FF0000";
}
ArrayList<Data> array = new ArrayList<Data>();
Data data = new Data();
data.caption = "کیفیت پخت";
data.rating = 5;
data.color = "#00ff00";
array.add(data);
و برای قسمت اخر بصورت زیر رنگ رو ست کنید و یا اگر میخواید انیمیشن نمایش بدید !
for(int i = 0 ; i < data.rating; i++){
ratingArray.get(i).setBackgroundColor(Color.ParseColor(data.color));
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
