我正在使用onTouchEvent
来检测屏幕滑动并更改ImageView
位置,我的问题是ImageView
可以离开屏幕。这是我的代码:
获取RelativeLayout
界限
rlt = (RelativeLayout) findViewById(R.id.layout);
rlt.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
rlt.getViewTreeObserver().removeOnGlobalLayoutListener(this);
lwidth = rlt.getWidth();
lheight = rlt.getHeight();
Toast.makeText(MainActivity.this,"" + lwidth + lheight, Toast.LENGTH_SHORT).
show();
}
});
或其他方式 - 获取屏幕边界 -
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
lheight = displaymetrics.heightPixels;
lwidth = displaymetrics.widthPixels;
设置ImageView
的位置(右侧滑动示例)
if (x2 > x1) { // To the right (x1=swipe ends finger position, x2= swipe starts finger position)
imageView.setX(imageView.getX() + 50);
if(imageView.getX()>1440)
imageView.setX(1440-imageView.getWidth());
Toast.makeText(this, "right" + imageView.getX(), Toast.LENGTH_SHORT).
show();
}
我在Galaxy S6上测试这个,宽度应该是1440像素,我检查了ImageView
(40px40p)最大可以达到1333p,你只看到它的一半。我希望它在这种情况下停在1283p,但也支持其他手机,通用代码。谢谢。
注意 - 当ImageView为imageView.setX(1330)
时,我根本无法看到它,但我的设备宽度为1440。