У меня есть вопрос, как я могу сделать эффект параллакса в Android? Я пробовал это с датчиком акселерометра и TranslateAnimation, но не работает так, как мне хочется.
fun parallaxEffect(){
var sensorManager: SensorManager? = null
var sensorGyr: Sensor? = null
sensorManager = activity?.getSystemService(Context.SENSOR_SERVICE) as SensorManager?
sensorGyr = sensorManager?.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)
val displayMetrics = DisplayMetrics()
activity?.windowManager?.defaultDisplay?.getMetrics(displayMetrics)
height=displayMetrics.heightPixels
width=displayMetrics.widthPixels
if (sensorGyr == null)
Toast.makeText(context, "No tiene el sensor", Toast.LENGTH_SHORT).show()
val mEventListener = object : SensorEventListener {
override fun onAccuracyChanged(sensor: Sensor, accuracy: Int) {
}
override fun onSensorChanged(event: SensorEvent) {
if(event.values[0] > 5) {
Log.d("Movement", "+5")
val anim1 = TranslateAnimation(0f, 16f, 0f,0f)
anim1.duration = 500
anim1.fillAfter = true
bg.startAnimation(anim1)
}
if(event.values[0] < -5) {
Log.d("Movement", "-5")
val anim1 = TranslateAnimation(16f, 0f, 0f,0f)
anim1.duration = 500
anim1.fillAfter = true
bg.startAnimation(anim1)
}
}
}
sensorManager?.registerListener(mEventListener,sensorGyr, SensorManager.SENSOR_DELAY_FASTEST)
}