android - onTouch 同时向上滑动和向下滑动
问题描述
我正在尝试用我的观点做三件事。第一次“点击”我的屏幕时,我想将视图顶部的 ImageView 完全设置为 0alpha 以显示下方视图。当屏幕点击被解除时,我希望 alpha 回到 1alpha 隐藏图像。接下来,当手指向下并显示图像时,id 就像在屏幕上上下滑动以更改顶层的 alpha 以便通过它显示下面的图像。我的问题是我无法同时解析 swipeUp、swipeDown 和 touch,它要么只是 swipeUp 和 swipeDown,要么只是触摸!有人可以帮我解决这个问题吗?
blackPart.setOnTouchListener(new OnSwipeTouchListener(this) {
@Override
public void onSwipeDown() {
Log.d("OK", "bye");
if(drawAlpha > 0.25)
{
drawAlpha -= 0.25;
};
blackPart.setAlpha(drawAlpha);
Log.d("notes", "alpha:" + drawAlpha);
}
@Override
public void onSwipeUp() {
if(drawAlpha < 1.0)
{
drawAlpha += 0.25;
}
blackPart.setAlpha(drawAlpha);
}
@Override
public boolean onTouch(View arg0, MotionEvent arg1)
{
Log.d("notes", "touched");
if(SP.getBoolean("drawingAlwaysVisible", false)) return true;
if(arg1.getAction() == MotionEvent.ACTION_UP) {
Log.d("OK", "action up");
arg0.setAlpha(1.0f);
}
else if(arg1.getAction() == MotionEvent.ACTION_DOWN)
{
arg0.setAlpha(0.0f);
Log.d("OK", "no");
}
return true;
}
});
解决方案
这是代码的一部分,应该可以工作
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
float eventX = event.getX();
float eventY = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
return true;
case MotionEvent.ACTION_MOVE:
int historySize = event.getHistorySize();
for (int i = 0; i < historySize; i++) {
float historicalX = event.getHistoricalX(i);
float historicalY = event.getHistoricalY(i);
if (historicalY >= eventY) {
//move is down
} else {
//move is up
}
if (historicalX >= eventX) {
//move is right
} else {
//move is left
}
eventX = historicalX;
eventY = historicalY;
Log.d(TAG, "onTouch: X = " + eventX);
Log.d(TAG, "onTouch: Y = " + eventY);
}
return true;
}
return false;
}
});
推荐阅读
- python - why does my logger not inherit handlers from root logger
- amazon-web-services - AWS ECS CLI Doesn't Attach EC2 Instance To Cluster
- javascript - 从具有 (x,y) 坐标的列表中获取项目
- python - PyGears How to make counter
- java - How to validate Json text which is not having any property name or key?
- google-apps-script - 范围的坐标在工作表的尺寸之外
- mysql - 递归 SELECT 查询
- reactjs - jest +酵素:不更新材料输入值
- swift - 在 Swift 中从 Result 到 Future 的速记转换?
- batch-file - 批处理脚本:选择目录中的前 x 个文件并将这些文件传输到远程服务器