当我运行这段代码时,它什么也没做,我确信当我触摸按钮时会调用此事件。但它不会改变 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/