final RelativeLayout rl = (RelativeLayout) findViewById(R.id.rel);
final ImageView circle = (ImageView) findViewById(R.id.circle);
final ViewGroup.MarginLayoutParams screen = (ViewGroup.MarginLayoutParams) rl.getLayoutParams();
和..
View v;
v = arrayofImages[i];
v.setOnTouchListener(new View.OnTouchListener() {
PointF DownPT = new PointF();
PointF StartPT = new PointF();
@Override
public boolean onTouch(View v, MotionEvent event) {
int eid = event.getAction();
switch (eid) {
case MotionEvent.ACTION_MOVE:
PointF mv = new PointF(event.getX() - DownPT.x, event.getY() - DownPT.y);
v.setX((StartPT.x + mv.x));
v.setY( (StartPT.y + mv.y));
StartPT = new PointF(v.getX(), v.getY());
if (circle.getRight() > v.getX() && circle.getTop() <= v.getY()
&& circle.getBottom() > v.getY() && circle.getLeft() <= v.getX()) {
v.setVisibility(View.INVISIBLE);
}
if (v.getX() > screen.bottomMargin) {
v.setX(screen.bottomMargin);
}
break;
case MotionEvent.ACTION_DOWN:
DownPT.x = event.getX();
DownPT.y = event.getY();
StartPT = new PointF(v.getX(), v.getY());
break;
case MotionEvent.ACTION_UP:
// Nothing have to do
break;
default:
break;
}
return true;
}
});
所以基本上我试图不让imageView进入屏幕。如果视图v太远,则将其放置在左侧。
if (v.getX() > screen.leftMargin) {
v.setX(screen.leftMargin);
}
这应该是技巧,但它只能用于左边距。如果我尝试这样的事情
if (v.getX() > screen.rightMargin) {
v.setX(screen.rightMargin);
}
它就像是leftMargin(当我在左侧触摸它时会移动我的图像。)
我不知道我做错了什么...请帮助..如果您需要更多代码,我会粘贴,但这就是我认为的重要事项。
答案 0 :(得分:2)
好吧,您不应该使用#!/usr/bin/env node
var child_process = require('child_process');
function runCmd(cmd)
{
var resp = child_process.execSync(cmd);
var result = resp.toString('UTF8');
return result;
}
var cmd = "curl -s -d '{'title': 'Test' }' -H 'Content-Type: application/json' http://125.196.19.210:3030/widgets/test";
var result = runCmd(cmd);
console.log(result);
或bottomMargin
字段。这些是您为topMargin
设置的边距。如果您想检查RelativeLayout
是否不在View
外,请务必使用RelativeLayout
和width
进行核对。
但如果您要做的只是将height
保留在View
内,则需要使用RelativeLayout
和View.getLeft()
代替View.getRight()
。这将给出View相对于父级的位置。您可以在逻辑中使用它,而不是使用getX()
(以像素为单位返回此视图的可视x位置。)
可以通过调用来检索视图的位置 方法getLeft()和getTop()。前者返回左边,或者X, 表示视图的矩形的坐标。后者回归 表示视图的矩形的顶部或Y坐标。 这些方法都返回视图相对于它的位置 家长。例如,当getLeft()返回20时,表示视图 位于其直接左边缘右侧20像素处 父节点。