代码之家  ›  专栏  ›  技术社区  ›  tbp

使用对象动画师设置动画按钮

  •  0
  • tbp  · 技术社区  · 8 年前

    我只想给我的按钮设置动画。

    我得到:

    W/PropertyValuesHolder:在目标类android.support.v7.widget.AppCompatButton上找不到int类型的方法setAlpha()

    维护活动.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 回复  |  直到 8 年前
        1
  •  1
  •   Danail Alexiev    8 年前

    这个 alpha 属性的类型为 float 。您正在尝试使用 int 价值观对象动画师试图找到 setAlpha(int) 中的方法 View 类,并且不能这样做-因此出现了异常。

    你要么需要使用 ObjectAnimator.ofFloat() 或者更简单 button.animate().alpha() 变种我个人会推荐第二个选项——它更干净,并删除了一些样板代码。