标签: viewlayout

查看getHeight()和getWidth()返回值太大

我在onDraw()方法的自定义视图中调用getHeight和getWidth . getHeight()返回1,073,742,549getWidth()返回1,073,742,304.但是,当我查看屏幕高度和宽度的显示指标时,我分别得到800和480.什么是getHeight和getWidth返回?

我正在获取视图的尺寸,因此我可以选择位于视图中的位图的尺寸.

谢谢.

android view viewlayout

8
推荐指数
2
解决办法
3279
查看次数

getMeidth()和getHeight在onMeasure()之后返回零(特定设备)

我注意到,在调用onMeasure()之后,我的应用程序视图为getWidth()和getHeight()返回0.这只发生在少数设备上,对于大多数Android设备,下面的代码工作正常.我的checkViewAndLoad()函数根据视图的大小加载缩放的位图.

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);

    Log.d("widthMeasureSpec", Integer.toString(MeasureSpec.getSize(widthMeasureSpec)));
    Log.d("heightMeasureSpec", Integer.toString(MeasureSpec.getSize(heightMeasureSpec)));
    Log.d("viewWidth", Integer.toString(getWidth()));
    Log.d("viewHeight", Integer.toString(getHeight()));

    checkViewAndLoad();
}
Run Code Online (Sandbox Code Playgroud)

这是一个设备的日志(Motorola Droid Razr Maxx),它在onMeasure()之后为getWidth()/ getHeight()返回零:

09-03 20:55:58.359: D/widthMeasureSpec(29496): 540
09-03 20:55:58.359: D/heightMeasureSpec(29496): 720
09-03 20:55:58.359: D/viewWidth(29496): 0
09-03 20:55:58.359: D/viewHeight(29496): 0
Run Code Online (Sandbox Code Playgroud)

我也尝试手动设置MeMeuredDimensions(),但是这一手不会影响日志.

有人可以告诉我这里我做错了什么,或者在调用onMeasure()之后如何获得SurfaceView的宽度/高度?

android surfaceview viewlayout

6
推荐指数
1
解决办法
3784
查看次数

标签 统计

android ×2

viewlayout ×2

surfaceview ×1

view ×1