2015-10-31 3 views
0

У меня есть простая идея.Android Picker with String

Я хотел был бы использовать сборщик как that и вставить строки в него. У кого-нибудь есть идея, как это реализовать?

Так что вместо цифр я хотел бы вставить имена в круглый таймер выбора .

Образец implementation для обычного выбора времени.

enter image description here

ответ

1

Как выясняется из source code, в основном эти цифры внутри циркуляре просто Тексты над Bitmaps.

Основным принципом достижения этой цели является использование класса Canvas. Холст держит призывы «ничьей». Таким образом, чтобы сделать что-то, что вам нужно 4 основных компонента:

  • растровое изображение, чтобы держать Пиксели
  • холста для HOST Жеребьевка вызовов (запись в растровое изображение)
  • графического примитива (например, Rect, Путь , текст, растровое изображение) и
  • краска (для описания цветов и стилей для чертежа).

Таким образом, мы создаем объект Paint и задаем им размер текста, цвет, тень и т. Д. С использованием объекта Canvas.

Типичный пример использования Canvas:

Paint paint = new Paint(); 
paint.setColor(Color.WHITE); 
paint.setStyle(Style.FILL); 
canvas.drawPaint(paint); 

paint.setColor(Color.BLACK); 
paint.setTextSize(20); 
canvas.drawText("Text to be drawn", x-co ord, y-co ord, paint obj); 


Но, так как входной параметр типа для установки текста для инициализации drawTexts() уже в формате Строка в ссылке, которую вы упомянули, вещь, которая является требуется изменить, поскольку вы можете видеть, что here в методе initialize() состоит в том, чтобы изменить 3 встроенных массива, а именно hours, hours_24 и minutes, чтобы массивы String, которые вы хотите.

Это сделает текст «Один», «Два», «Три» и т. Д., А не «1», «2», «3».

Конечно, вам придется изменить тип других получателей/сеттеров или любых других методов, которые называет этот initialize(), и который относится к этим массивам int везде.

Надеюсь, это поможет.