Мое приложение имеет 9 растровых изображений на нем в сетке 3x3. Все они отображаются на экране и в зависимости от того, как пользователь взаимодействует с ними (коснитесь, дважды коснитесь, щепотку, масштабирование, перетаскивание), изображение, которое «работает», должно выполнять разные задачи.Android Scale растровое изображение
Так, например, если я нажимаю на одно изображение, он должен полностью вращаться вокруг вертикального доступа, а затем останавливаться.
В настоящее время я использую SurfaceView с методом onTouchEvent (..). Как я понял, я мог бы оживить это, уменьшив ширину изображения с 1 на -1 до 1. Я пытаюсь использовать матрицу, но я не могу заставить изображение оставаться в центре его места. Пожалуйста, помогите мне исправить это или предложить альтернативный/лучший способ выполнить это.
Мой текущий код - это всего лишь тест. Если b истинно, тогда метод попытается масштабировать растровое изображение. Если б ложно, то он будет рисовать битмап нормально .:
public void doDraw(Canvas canvas, boolean b)
{
Matrix m = new Matrix();
float scale = .5f;
m.setScale(scale, 1f);
m.postTranslate(mX,mY);
if(!b)
canvas.drawBitmap(mBitmap, mX, mY, null);
else
canvas.drawBitmap(mBitmap, m, null);
}
Я предполагаю, что вы имеете в виду вот так: 'float scale = -1f; \t m.preTranslate (-mX, -mY); \t m.setScale (шкала, 1f); \t m.postTranslate (mX, mY); ' Но это не сработало. Я также пробовал шкалу заказов, предтранслят, посттранслят. Nothing – Sababado
Сохраняет изображение, выровненное по левому краю. Мне нужно, чтобы это было сосредоточено. – Sababado
сообщение обновлено посмотреть – weakwire