2016-02-10 3 views
0

Я просто хочу анимировать мою кнопку.Анимационная кнопка с объектным аниматором

Я получаю:

W/PropertyValuesHolder: Метод SetAlpha() с типом Int не найден класс целевого класса android.support.v7.widget.AppCompatButton

Mainactivity.java :

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     ObjectAnimator objectAnimator; 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ListView mListView= (ListView) findViewById(R.id.listView); 
     Button button= (Button) findViewById(R.id.button); 
     objectAnimator=ObjectAnimator.ofInt(button,"alpha",0,1).setDuration(1000); 
     objectAnimator.setTarget(button); 
     objectAnimator.start(); 


     adapter myAdapter = new adapter(this); 
     AlphaInAnimationAdapter animationAdapter = new AlphaInAnimationAdapter(myAdapter); 
     animationAdapter.setAbsListView(mListView); 
     mListView.setAdapter(animationAdapter); 
    } 

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="autogenie.mp.MainActivity"> 

    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="300dp" 
     android:id="@+id/listView" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentEnd="true" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="New Button" 
     android:id="@+id/button" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="50dp" /> 
</RelativeLayout> 

Почему это не оживление?

Что входит в число название объекта параметр метода ofint() класса objectanimator?

ответ

1

alpha Недвижимость имеет тип float. Вы пытаетесь оживить его с помощью значений int. Объектный аниматор пытается найти метод setAlpha(int) в классе View и не может этого сделать - отсюда исключение.

Вам либо нужно использовать ObjectAnimator.ofFloat(), либо более простой вариант button.animate().alpha(). Я бы лично рекомендовал второй вариант - он намного чище и удалил какой-то шаблонный код.

Смежные вопросы