Возможно ли это сделать?Я не очень хорош в рисовании вещей, у меня есть очень простой «класс Dot», который рисует круг, основанный на x и y, но кава находится в FrameLayout размером примерно с половиной моих эмулируемых 3,7 на экране.Излишне говорить, что у меня только около 150 на у и что-то вроде 200 на х (угадайте его пикселей).Есть ли способ масштабирования холста для рисования координат?
Желательно, чтобы мое местоположение отображалось в центре, а другие местоположения в моем диапазоне просмотра были нарисованы на основе моего местоположения.
Поэтому я в основном спрашиваю, есть ли способ масштабирования холста, чтобыкоординаты и позвольте мне указать этот масштаб.поэтому, если я нахожусь на 32.345 и -212.988765, это центр, и я могу видеть другие места в пределах, скажем, 10-километрового диапазона или что-то в этом роде.
Мой текущий класс точек:
public class Dot extends View{
private final float x;
private final float y;
private final int r = 5;
private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
public Dot(Context context, float x, float y) {
super(context);
mPaint.setColor(0xFFFF0000);
this.x = x;
this.y = y;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(x, y, r, mPaint);
}
}
ОтчетностьGPS-координаты работают, а рисование работает, но только если оно находится в пределах диапазона холста прямо сейчас.
Просто чтобы прояснить, все в моем приложении работает и передаются правильные координаты, последнийЧасть, в которой я нуждаюсь, - это визуальное представление, и я понятия не имею, как заставить холст вести себя как карта.
Редактировать Другая проблема, с которой я сталкиваюсь, - это рисование, когда позиция обновляет егоконечно перерисовывает, но добавляет новый круг, оставляя старый все еще там.Как мне полностью обновить его, чтобы круг «двигался» вместо добавления нового?Я пытался вызвать инвалида в представлении, но ничего не сделал.