Android imageView脱离屏幕边界

时间:2015-09-09 13:42:56

标签: android

我正在使用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。

0 个答案:

没有答案