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

Jay*_*ays 8 android view viewlayout

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

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

谢谢.

Tim*_*Tim 11

没有明确解决你的问题,但奇怪的是:

Width:
1,073,742,304 == 0x400001E0
          480 == 0x000001E0

Height:
1,073,742,549 == 0x400002D5
          725 == 0x000002D5
Run Code Online (Sandbox Code Playgroud)

这个自定义视图大概是725 x 480吗?我不知道额外的0x40000000来自哪里,但看起来它几乎是正确的,除了1位:)

  • 谢谢.这很奇怪.所以我正在对着0xbfffffff的宽度和高度来获得正确的尺寸,这是有效的. (2认同)
  • @Jays,我再次查看了此内容,我认为最安全的操作可能是“ View.MeasureSpec.getSize(getWidth())”(以及高度)。measurespec可以用信号表示该顶部字符内的其他内容,如果发生更改,它可能稍后会咬住您(例如,如果报告为0x8000xxxx)。 (2认同)

EdC*_*ica 5

getHeight()getWidth()以像素为单位返回大小,请参阅http://developer.android.com/reference/android/view/View.html#getHeight%28%29

额外的大小可能会从未来View.MeasureSpec不断EXACTLY看到http://developer.android.com/reference/android/view/View.MeasureSpec.html#getSize%28int%29