Я хочу затухать ImageView - PullRequest
0 голосов
/ 23 июня 2019

Я хочу потушить ImageView, нажав на него. Это правильно, как я пытаюсь или кто-то может дать мне совет о том, как сделать это лучше? Теперь у меня есть Добавить "private", "new", "Animation", "fadeOutAndHideImage", "fadeOut", "public" выделены красным. Что я делаю не так? У меня каждый раз что-то плохое с кодом и я не могу закончить легкое приложение.

package com.example.fairytale_quest

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.view.MotionEvent
import android.view.View
import android.view.View.OnTouchListener
import android.view.animation.AlphaAnimation
import android.view.animation.Animation
import android.widget.ImageView
import kotlinx.android.synthetic.main.activity_main5.*

class Main5Activity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main5)
        val actionBar = supportActionBar

        actionBar!!.hide()
       var listener = OnTouchListener(function = { view, motionEvent ->

            if (motionEvent.action == MotionEvent.ACTION_MOVE) {

                view.y = motionEvent.rawY - view.height / 2
                view.x = motionEvent.rawX - view.width / 2
            }

            true
        })
        private void fadeOutAndHideImage(final ImageView draggableImage)
        {
            Animation fadeOut = new AlphaAnimation(1, 0);
            fadeOut.setInterpolator(new AccelerateInterpolator());
            fadeOut.setDuration(1000);

            fadeOut.setAnimationListener(new AnimationListener()
            {
                public void onAnimationEnd(Animation animation)
                {
                    draggableImage.setVisibility(View.GONE);
                }
                public void onAnimationRepeat(Animation animation) {}
                public void onAnimationStart(Animation animation) {}
            });

            draggableImage.startAnimation(fadeOut);
        }
            draggableImage.setOnTouchListener(listener)
            draggableImage2.setOnTouchListener(listener)

        }

    }
}

1 Ответ

1 голос
/ 23 июня 2019

ссылаясь на этот ответ: Создание плавного затухания для просмотра изображений в Android

Замените img.setVisibility (View.GONE) в вашем коде вызовом fadeOutAndHideImage (img), которыйопределяется следующим образом:

  private void fadeOutAndHideImage(final ImageView img)
  {
    Animation fadeOut = new AlphaAnimation(1, 0);
    fadeOut.setInterpolator(new AccelerateInterpolator());
    fadeOut.setDuration(1000);

    fadeOut.setAnimationListener(new AnimationListener()
    {
            public void onAnimationEnd(Animation animation) 
            {
                  img.setVisibility(View.GONE);
            }
            public void onAnimationRepeat(Animation animation) {}
            public void onAnimationStart(Animation animation) {}
    });

    img.startAnimation(fadeOut);
    }

Сначала будет применена анимация затухания, затем будет скрыт вид изображения.

KOTLIN

       private fun fadeOutAndHideImage(img: ImageView) {
    val fadeOut = AlphaAnimation(1F, 0F)
    fadeOut.setInterpolator(AccelerateInterpolator())
    fadeOut.setDuration(1000)

    fadeOut.setAnimationListener(object: Animation.AnimationListener {
       override fun onAnimationEnd(animation:Animation) {
            img.setVisibility(View.GONE)
        }
        override fun onAnimationRepeat(animation:Animation) {}
        override  fun onAnimationStart(animation:Animation) {}
    })
    img.startAnimation(fadeOut)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...