Как уменьшить imageView, прокручивая вверх / вниз в масштабе без анимации - PullRequest
0 голосов
/ 28 октября 2019

Для этого примера у меня есть ImageView внутри Nested Scroll View.

Я хочу сжать, уменьшить изображение, когда я делаю прокрутку вниз, а когда я делаю прокрутку вверх, изображение увеличивается доВаш исходный размер программно.

Пример: мои Image.PivotX и PivotY = 0,5F для изменения размера в центре справа?

Я уже получаю scrollY из своего «Вложенного», получаю мои scaleX и scaleY из своего изображения, но я не знаю, как соответствовать каждому изменению scrollY, меняющему масштаб или размер моего изображения.

Это мой MainActivity

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

        implementScrollListener()


    }

    private fun implementScrollListener() {
        nestedScrollView.getViewTreeObserver()
            .addOnScrollChangedListener(ViewTreeObserver.OnScrollChangedListener {
                /* get the maximum height which I have scroll before performing any action (half of the screen for this example)*/
                val maxDistance = nestedScrollView.scrollBarSize / 2
                /* how much I have scrolled */
                val movement = nestedScrollView.getScrollY()

                if (movement >= 0 && movement <= maxDistance) {

                    ivNested3.pivotX = 0.5F
                    ivNested3.pivotY = 0.5F
                    ivNested3.getScaleX()
                    ivNested3.getScaleY()
                    //I should do the Shrink here??

                }
                nestedScrollView.setOnScrollChangeListener(
                    NestedScrollView.OnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY ->
                        if (scrollY > oldScrollY) {
                            Log.i("SCROLL", "Scroll DOWN")
                        }
                        if (scrollY < oldScrollY) {
                            Log.i("SCROLL", "Scroll UP")
                        }
                    })
            })
    }

    fun scaleImage(v: View, barSize: Size) {
        //I have to create another function to shrink the image?     
        v.pivotX = 0.5F
        v.pivotY = 0.5F
    }
}

И мой XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimary"
    tools:context=".MainActivity">

    <androidx.core.widget.NestedScrollView
        android:id="@+id/nestedScrollView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <ImageView
                android:id="@+id/ivNested"
                android:layout_width="250dp"
                android:layout_height="275dp"
                android:layout_marginTop="100dp"
                android:layout_marginStart="50dp"
                android:layout_marginEnd="50dp"
                android:background="@drawable/minion"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"/>
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

Я ищу в других местах, но они используют анимацию, но я хочу выполнить это с помощью прокрутки, я установил минимумизображение может достигнуть, и исходный размер, а затем выполнить прокрутку вниз изображения, уменьшит достижение минимально допустимого размера, и при прокрутке вверх изображение вернется к исходному размеру.

Может кто-нибудь помочь с этой задачей/ проблема? Я не могу понять, как это сделать

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