Как добиться эффекта скрэббл в представлениях Android
У нас есть идея для игры под Android, и я немного поигрался с представлениями, но не могу придумать что-то адекватное.
Идея игры заключается в матрице фиксированного размера, и каждая ячейка в этой матрице может содержать плитку, похожую на плитки Scrabble.
Под этим я подразумеваю письмо на плитке и счет. Письмо занимает большую часть фишки, а счет - это немного текста в углу (никаких критических замечаний по моим графическим навыкам, это не конечный продукт):
+---------+ +---------+
| # | | #### |
| # # | | # # |
| # # | | #### |
| ##### | | # # |
| # # | | #### |
| 17| | 22|
+---------+ +---------+
В отличие от Scrabble, оценка тайла не связана с его буквенным значением, поэтому мы должны иметь возможность заполнять тайлы произвольной буквой и счетом.
Я использую текстовые представления и пытаюсь превратить их в сетку с границами вокруг каждой ячейки (с фоновым изображением), но я не могу заставить работать представления внутри представлений, что, я полагаю, мне нужно, чтобы граница окружала оба текстовых представления.,
Я попытался использовать таблицу с каждой ячейкой, а также таблицу, содержащую буквы и оценки. Но я не могу получить удовлетворительный результат.
Количество комбинаций букв и очков будет довольно большим, поэтому я не хочу создавать изображения для каждой возможной плитки.
Кто-нибудь еще сталкивался с подобной проблемой, и как лучше ее решить?
2 ответа
Вы будете быстрее создавать только буквы (не комбинации)
Создайте представление под названием TileView, которое реализует изображение, и нарисуйте счет в углу плитки, используя 2d методы, описанные в руководстве разработчика.
Я думаю, что я что-то неправильно понимаю...
Но это простой customView с TextView, который можно стилизовать, в относительной компоновке и в правом нижнем углу родительского элемента другой TextView с другим стилизованным textView.
Затем вы можете добавить этот компонент к каждой плитке вашей игры.
Для плитки вы можете использовать свой актив в качестве фона или определить его в XML.