SurfaceView的高度和宽度

时间:2014-12-17 03:45:24

标签: android height width surfaceview

我想知道怎么做

SurfaceView 

我已经制作的类,并从SurfaceView的构造函数中获取曲面的高度和宽度。 (高度和宽度,以像素为单位)

我认为这应该很容易,但结果很难。

我知道Google不鼓励使用高度和宽度属性,但我觉得我需要它们。

任何帮助将不胜感激, 谢谢!

2 个答案:

答案 0 :(得分:2)

SurfaceView并没有那么好用。

SurfaceView有两个部分,Surface和View。视图由视图层次结构创建,并遵循常用的布局机制。

Surface由Window Manager创建。这需要IPC到图形合成器(SurfaceFlinger)。由于可能存在延迟,SurfaceView实例化具有异步组件,并且在SurfaceView构造函数退出之前,Surface通常不会存在。

处理此问题的正确方法是设置SurfaceHolder回调并等待调用surfaceChanged()方法。回调接受表面宽度和高度作为参数。

您可以在Grafika中看到一些示例,例如" hardware scaler exerciser"活动跟踪宽度和高度的变化。

答案 1 :(得分:1)

尝试这样:

getWindowManager().getDefaultDisplay().getMetrics(metrics); Width = metrics.widthPixels; Height = metrics.heightPixels;