Эффект параллакса в Android Studio - PullRequest
0 голосов
/ 23 октября 2019

У меня есть вопрос, как я могу сделать эффект параллакса в 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)
}
...