Я пытаюсь получить текст на кругах. То, что у меня есть на минуту, - это два вектора, один для удерживания строк, а другой для хранения Drawables.Рисование векторов на холсте и ассоциирование элементов в этих векторах?
В моем методе onDraw() я прокручиваю и рисую на каждый холст. Я хочу найти способ связать элементы вектора String и элементы в векторе Drawable.
Например: пользователь нажимает на круг 3, затем они затем добавляют, чтобы добавить текст в круг, и после завершения этих шагов круг 3 знает, что соответствующий текст находится в элементе 3 вектора строк. Таким образом, в OnDraw(), то Drawable вектор может быть обращен на холст, за которым следует Струны холдинговых текст для каждого круга ....
Некоторой коды у меня на минуте:
пользователь нажимает, чтобы добавить текст к кругу открывается диалоговое окно и просит пользователя ввести текст, который они хотели бы по кругу.
stringsVector.setSize(vecForShapes.size());//set the Strings vector to the size of the Drawable vector, because there will never be more text than circles
stringsVector.add(circleID, circleText);//add circleText to the Strings vector at position circleID.
сейчас в моей OnDraw() Я перерисовывать оба вектора и поместить текст на пределы этого круга:
for(int i =0;i<_vecForShapes.size();i++)
{
Rect bounds = ((Drawable) _vecForShapes.get(i)).getBounds();//get circle i
String tempString = stringVect.get(i);//get string i
if(tempString !=null)
if(tempString.length() > 17)
{
canvas.drawText(tempString, 0, 11, bounds.left+10, bounds.top+30, colour);
canvas.drawText(tempString, 11,tempString.length(), bounds.left+5, bounds.top+40, colour);
}//end if
else
{
canvas.drawText(tempString,0,tempString.length(), bounds.left+5, bounds.top+40, colour);
}
}
Я знаю, что есть, вероятно, многие лучшие способы сделать это, но я слишком далеко, чтобы изменить это сейчас, но я все еще готов выслушать мнения людей, поэтому я буду знать лучше в следующий раз.
Спасибо!