Tworzę aplikację żarówki animacji, w której znajdują się dwa widoki na niebieski i zielony żarówka oraz dwa przyciski (o nazwie niebieski i zielony).

Na naciśnięciu ich Image1's Wzrasta Zwiększa się 2 razy zmniejsza się odwrotnie, gdy pojawi się inny przycisk (wartości alfa są 1 dla obu początkowo), ale słowoe animate jest pokazywane na czerwono, a kod nie jest kompilowany.

MainActivity:

 package com.example.honey1.animatedbulb;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.AppCompatImageView;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

public void greenTapped(View view)
{
    ImageView blue=(ImageView)findViewById(R.id.bluebulb);
    ImageView green=(ImageView)findViewById(R.id.greenbulb);
    blue.animate.alpha(1).setDuration(2000);
    green.animate.alpha(0).setDuration(2000);

}
public void blueTapped(View view)
{
    ImageView blue=(ImageView)findViewById(R.id.bluebulb);
    ImageView green=(ImageView)findViewById(R.id.greenbulb);
    blue.animate.alpha(0).setDuration(2000);
    green.animate.alpha(1).setDuration(2000);

}


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}
}

Główny zrzut ekranu działalności:

main activity screenshot

Zrzut ekranu XML:

XML file screenshot

-4
Abhinn Krishn 19 luty 2018, 13:52

3 odpowiedzi

Najlepsza odpowiedź

Właśnie zapomniałeś () po animate()

I animate() jest metodą nie jest nieruchomością

Użyj tego

blue.animate().alpha(1).setDuration(2000);
green.animate().alpha(0).setDuration(2000);

Zamiast tego

blue.animate.alpha(0).setDuration(2000);
green.animate.alpha(0).setDuration(2000);
2
Nilesh Rathod 19 luty 2018, 10:56

View.animate() jest metodą, a nie nieruchomością lub polem.

2
MeliX 19 luty 2018, 10:56

Należy użyć jak poniżej kodu, należy użyć .animate() nie .animate:

Metoda Animate () na obiekcie widoku zwraca obiekt ViewPropertynimator dla widoku. Zapewnia płynne interfejsy API typowe animacje, które można wykonać na widokach.

Twój kod :

 blue.animate.alpha(1).setDuration(2000);
 green.animate.alpha(0).setDuration(2000);

Wymień:

  blue.animate().alpha(1).setDuration(2000);
  green.animate().alpha(0).setDuration(2000);
2
Abhishek kumar 19 luty 2018, 11:29