我知道之前已经问过这个问题我已经完成了但是他们没有解决我的问题。
我的ScrollView带有一个带有imageview的LinearLayout。我已经使用ontouchListner来imageview给它们点击这样的效果
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
view.getBackground().setColorFilter(0xCCCDDC39, PorterDuff.Mode.SRC_ATOP);
view.invalidate();
break;
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP:
view.getBackground().clearColorFilter();
view.invalidate();
startActivity(view.getId());
break;
}
但问题是每当我滚动ontouchlistner被称为imageview并且图像被点击。我不想在每次滚动时都这样,因为这不允许我滚动。请帮忙
答案 0 :(得分:3)
如果我正确理解您的问题,您可以使用onClickListener
和selector
来实现此目的。此外,您不必为所选状态保留重复的图像集。您可以像这样
StateListDrawable states = new StateListDrawable();
Drawable drawable = ContextCompat.getDrawable(this, R.drawable.your image);
drawable.setColorFilter(0xCCCDDC39, PorterDuff.Mode.SRC_ATOP);
states.addState(new int[] {android.R.attr.state_pressed}, drawable);
yourView.setBackground(states);
答案 1 :(得分:0)
确定短暂的asnwer
scroll.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
int x = scrollY - oldScrollY;
if (x > 0) {
//scroll up
} else if (x < 0) {
//scroll down
} else {
}
}
});