Рейтинг Звезд как в андроиде
Моя цель состоит в том, чтобы создать звездное поле, как в Android у них есть звездное поле рейтинга. Я зашел так далеко, чтобы выполнить следующее:
- создать звездные поля (5)
- при щелчке растровое изображение изменяется.
- Когда "Unclicked" растровое изображение возвращается к значению по умолчанию.
Мой следующий шаг - сделать следующее: если звезда 1 не нажата, то все 4 звезды после не должны быть нажатыми, если звезда 2 нажата, звезды 3 должны быть нажатыми, а звезды 4-5 не должны нажиматься (и затем назад) если были выбраны все 5 звезд, только звезды 5 должны быть активными, если звезды 5 и 4 не нажаты, то звезды 3 должны быть активными, звезды 2-1 не должны нажиматься и т. д.
Я могу предоставить вам фрагмент кода (проверьте ссылку) с тем, что я уже сделал: http://supportforums.blackberry.com/t5/Java-Development/Rating-Stars-like-in-android/m-p/1942559
Пожалуйста, дайте мне знать, если у вас есть идея, как сделать то, чего я хотел бы достичь, спасибо.
2 ответа
LabelField RateDeal = new LabelField("Rating: ");
HorizontalFieldManager StarManager=new HorizontalFieldManager(USE_ALL_WIDTH);
final Bitmap StarNotClicked = Bitmap.getBitmapResource("rating_star.png");
final Bitmap StarClicked = Bitmap.getBitmapResource("rating_star_focus.png");
Star1 = new BitmapField(StarNotClicked,BitmapField.FOCUSABLE){
protected boolean navigationClick(int status, int time){
fieldChangeNotify(1);
Star1.setBitmap(StarClicked);
Star2.setBitmap(StarNotClicked);
Star3.setBitmap(StarNotClicked);
Star4.setBitmap(StarNotClicked);
Star5.setBitmap(StarNotClicked);
AmountOfStarsSelected(1);
return true;
}
};
Star2 = new BitmapField(StarNotClicked,BitmapField.FOCUSABLE){
protected boolean navigationClick(int status, int time){
fieldChangeNotify(1);
Star1.setBitmap(StarClicked);
Star2.setBitmap(StarClicked);
Star3.setBitmap(StarNotClicked);
Star4.setBitmap(StarNotClicked);
Star5.setBitmap(StarNotClicked);
AmountOfStarsSelected(2);
return true;
}
};
Star3 = new BitmapField(StarNotClicked,BitmapField.FOCUSABLE){
protected boolean navigationClick(int status, int time){
fieldChangeNotify(1);
Star1.setBitmap(StarClicked);
Star2.setBitmap(StarClicked);
Star3.setBitmap(StarClicked);
Star4.setBitmap(StarNotClicked);
Star5.setBitmap(StarNotClicked);
AmountOfStarsSelected(3);
return true;
}
};
Star4 = new BitmapField(StarNotClicked,BitmapField.FOCUSABLE){
protected boolean navigationClick(int status, int time){
fieldChangeNotify(1);
Star1.setBitmap(StarClicked);
Star2.setBitmap(StarClicked);
Star3.setBitmap(StarClicked);
Star4.setBitmap(StarClicked);
Star5.setBitmap(StarNotClicked);
AmountOfStarsSelected(4);
return true;
}
};
Star5 = new BitmapField(StarNotClicked,BitmapField.FOCUSABLE){
protected boolean navigationClick(int status, int time){
fieldChangeNotify(1);
Star1.setBitmap(StarClicked);
Star2.setBitmap(StarClicked);
Star3.setBitmap(StarClicked);
Star4.setBitmap(StarClicked);
Star5.setBitmap(StarClicked);
AmountOfStarsSelected(5);
return true;
}
};
StarManager.add(Star1);
StarManager.add(Star2);
StarManager.add(Star3);
StarManager.add(Star4);
StarManager.add(Star5);
add(StarManager);
Эта статья полезна для оценки звезды на ежевике согласно вашему требованию.