java - Android图像淡入淡出动画

标签 java android animation android-studio objectanimator

当我运行这段代码时,它什么也没做,我确信当我触摸按钮时会调用此事件。但它不会改变 imageView 的不透明度。

View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
        ObjectAnimator fadeAltAnim = ObjectAnimator.ofFloat(R.id.imgTest, "alpha", 0.2f);
        fadeAltAnim.start();
    }
};


findViewById(R.id.dummy_button).setOnTouchListener(mDelayHideTouchListener);

我的代码有什么问题吗?

最佳答案

试试这段代码,它使用 ViewPropertyAnimator :

View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener()   {
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {

    view.animate().alpha(0.2f).setDuration(1000);
    }
};

设置持续时间总是好的,这样动画就知道应该运行多长时间。

编辑:如果您使用的是 onTouchListener,您可能希望将其附加到 MotionEvent,例如:

View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener()   {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
    if(motionEvent == MotionEvent.ACTION_DOWN)
        view.animate().alpha(0.2f).setDuration(1000);
    }
}; 

编辑 2:

如果你想使用 Button,最好使用 OnClickListener 而不是 onTouchListener,如果你想附加图像,则必须启动它(例如在 ImageView 中):

Button button = (Button) findViewById(R.id.your_button);
ImageView imageView = (ImageView) findViewById(R.id.imgTest);

button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            imageView.animate().alpha(0.2f).setDuration(1000);

    }
};

关于java - Android图像淡入淡出动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30938873/

相关文章:

java - 为什么我的 HTTP POST 请求无法发送到我的网页?

java - 例如,在内部对象上“同步”。游戏循环.player1

android - 如何正确完成所有打开的 Activity ?

css - 如何使用剪辑路径和 dashoffset 为自定义 SVG 设置动画?

java - Android:同步线程和处理程序

java - 为什么 RowMapper 内部类是静态的?

android - 更改 android 签名 key 密码

android - 退出 Android 应用程序按钮 - 真的

css - 第一次动画迭代后位置不同 'from'

ios - UIView.transitionWithView 破坏加载器的布局