检测视图的某些部分是否不可见?

时间:2011-06-27 17:04:18

标签: android android-layout

是否可以检测屏幕上是否有部分视图不可见?

这用于视图宽度/高度大于其父级宽度/高度的情况。

修改

我知道视图的高度为0.有谁知道为什么?我在onCreate中获取高度。

LinearLayout lin = (LinearLayout) findViewById(R.id.linear_layout);
final int layoutHeight = lin.getHeight();
Toast.makeText(this,"LinLay height: "+layoutHeight,Toast.LENGTH_SHORT).show();
...
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                int displayTextWidth = textView.getWidth();

                if (displayTextWidth <= layoutHeight) {
                    textView.setTextSize(textView.getTextSize() + 1);
                }
            }
        });

1 个答案:

答案 0 :(得分:2)

您可以通过调用View.getWidth()View.getHeight()获取视图的宽度和高度,然后通过以下方式获取设备尺寸:How do I get a device's maximal width and height in android

然后比较两者,如果视图的边界大于设备的边界,则视图的某些部分不可见。

回应评论:

    textView.post( new Runnable() {

    @Override
    public void run() {

        int displayTextWidth = textView.getWidth();

        // Code that uses width here...
    }
});