onOffsetsChanged: переместить растровое изображение
Я хочу, чтобы мое растровое изображение, имеющее высоту экрана и большую ширину, чем экран, было бы перемещено немного вправо или влево, если пользователь меняет рабочий стол, чтобы он мог видеть все изображение.
Вот мой код, который работает только частично:
int x = -1*(int)((xOffset*bmp.getWidth()));
canvas.drawBitmap(bmp, x, 0, null);
благодарю вас!
1 ответ
Вы получаете точные значения пикселей через переменные xPixels и yPixels в onOffsetsChanged(). Смотрите мой ответ здесь: Android живые обои масштабирования
Например, в onOffsetsChanged () вы можете установить частную переменную класса
mPixels = xPixels;
Затем, в вашей рутине
holder = getSurfaceHolder();
c = holder.lockCanvas();
c.translate(mPixels, 0f);
// c.drawBitmap ... goes here :-)
Как правило, вам понадобится растровое изображение, в два раза превышающее ширину экрана, а ваши изображения будут отцентрированы по центру. Например: экран шириной 320 пикселей -> 640 пикселей ширины растрового изображения с "центром" от 160 до 480. mPixels будет 0 в крайнем левом экране запуска (из 5), -160 в центре и -320 в крайнем правом экране,