Переопределение метода onDraw для ImageView, не центрируемого для рисования

#android #android-imageview #android-ui #android-custom-view #ondraw

#android-imageview #Android #android-пользовательский вид #ondraw

Вопрос:

Я следил за этим руководством http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html чтобы создать и просмотреть изображение, которое может прокручиваться во всех направлениях. Проблема в том, что когда я переопределяю метод onDraw и пытаюсь вручную нарисовать чертеж прямо на холсте, чертеж смещен от центра.

 @Override
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    canvas.save();
    canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
    getDrawable().draw(canvas);
    canvas.restore();

}
  

если я закомментирую метод, изображение будет отображаться по центру посередине правильно.

переопределяет ли этот метод что-то с выравниванием?

Комментарии:

1. после canvas.save() вызовите canvas.concat с матрицей, взятой getImageMatrix()

2. это помогло, если вы опубликуете ответ, я могу пометить его как правильный.

Ответ №1:

После canvas.save() вызова canvas.concat с матрицей, взятой getImageMatrix()

P.S: Взято из комментария pskink, поскольку это, похоже, решило проблему Брайана, я представляю это как отдельный ответ, чтобы будущие читатели могли его увидеть.