Как go к предыдущему изображению с помощью кнопки «Назад» с помощью ползунка изображений ImageSwitcher (проект Kotlin) - PullRequest
0 голосов
/ 10 апреля 2020

Я создаю простую галерею изображений с кнопками «Вперед» и «Назад» с Kotlin и XML. У меня следующая кнопка работает отлично. Я настроил массив изображений, и onClickListener проходит через них. Я не могу обернуть голову, как перевернуть массив изображений. Я пробовал reverseOrder <> () и reverse (), но испытываю трудности с соединением частей. Очень плохо знаком с XML и Kotlin (и вообще с кодированием). Любой совет поможет, спасибо!

package com.example.gallery

import android.app.ActionBar.LayoutParams
import android.app.Activity
import android.os.Bundle
import android.view.View
import android.view.animation.AnimationUtils
import android.widget.Button
import android.widget.FrameLayout
import android.widget.ImageSwitcher
import android.widget.ImageView
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : Activity() {
    private var iS: ImageSwitcher? = null
    private var btn1: Button? = null
    private var btn2: Button? = null
    val myGallery = intArrayOf(R.drawable.beach_house,R.drawable.cars,R.drawable.moss, R.drawable.pier, R.drawable.tree)
    var i = 0

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    btn1 = findViewById<View>(R.id.button) as Button
    btn2 = findViewById<View>(R.id.button2) as Button
    iS = findViewById<View>(R.id.imageSwitcher) as ImageSwitcher

    iS!!.setFactory {
        val myView = ImageView(applicationContext)
        myView.scaleType = ImageView.ScaleType.FIT_CENTER
        myView.layoutParams = FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT)
        myView

    }

    btn1!!.setOnClickListener {

        val animFadeIn =
            AnimationUtils.loadAnimation(applicationContext, android.R.anim.fade_in)
        iS!!.startAnimation(animFadeIn)

            if (i == myGallery.size) {
                i = 0
                imageSwitcher.setImageResource(myGallery[i])
                i++

            } else{
                imageSwitcher.setImageResource(myGallery[i])
                i++
            }
    }

    btn2!!.setOnClickListener {

        val animFadeIn =
            AnimationUtils.loadAnimation(applicationContext, android.R.anim.fade_in)
        iS!!.startAnimation(animFadeIn)

        if (i == myGallery.size) {
            i = 0
            imageSwitcher.setImageResource(myGallery[i])
            i++

        } else{
            imageSwitcher.setImageResource(myGallery[i])
            i++
        }
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...