Hacer android fondo de pantalla en vivo con paralaje desplazamiento
Estoy creando un fondo de pantalla en vivo con desplazamiento de paralaje. He leído el artículo: Parallax efecto de desplazamiento de fondo de fondo de pantalla en vivo . Pero cuando cambio de escritorio, el fondo se mueve de manera incorrecta (si cambio de escritorio de izquierda a derecha, la imagen se mueve de derecha a izquierda). ¿Cómo cambiar la dirección? Fragmento de código:
public void Init(Bitmap bitmap){ bg = new BitmapFactory().decodeResource(context.getResources(), R.drawable.thunder); bg = Bitmap.createScaledBitmap(bg, (int)(width*1.4), height, true); } float dx = 0.0f; @Override public void onOffsetsChanged(float xOffset, float yOffset, float xStep, float yStep, int xPixels, int yPixels) { dx = (width - bg.getWidth()) * (1 - xOffset); } private void doDraw(Canvas canvas) { canvas.save(); canvas.translate(dx, 0); canvas.drawBitmap(bg, 0, 0, null); canvas.restore(); }
Sé que esto es un problema antiguo, pero como este es un resultado alto en Google, todo lo que necesitas hacer es darle la vuelta a la señal en tu traducir.
canvas.translate(-dx, 0);
Esto invertirá efectivamente la dirección en que el fondo se desplaza cuando el usuario pasa. Espero que esto ayude a otros.
El algoritmo aquí necesita ser cambiado:
dx = (width - bg.getWidth()) * (1 - xOffset);
Debe cambiarse a algo similar a:
dx = (width) * (xOffset);
Una alternativa sería acceder al método canvas.drawBitmap () directamente a través de algo como esto:
canvas.drawBitmap(bg, xPixels, 0, null);
Dx = ( anchura – bg .getWidth ()) * xOffset;
dónde:
Anchura – ancho del lienzo;
Bg – mapa de bits