`
zhanglfat
  • 浏览: 89804 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

getWidth()为0

阅读更多
一般在刚开始开发android时,会犯一个错误,即在View的构造函数中获取getWidth()和getHeight(),当一个view对象创建时,android并不知道其大小,所以getWidth()和getHeight()返回的结果是0,真正大小是在计算布局时才会计算,所以会发现一个有趣的事,即在onDraw( ) 却能取得长宽的原因。

如何在构造函数中如何取得长宽。

    width = activity.getWindowManager().getDefaultDisplay().getWidth();
    height = activity.getWindowManager().getDefaultDisplay().getHeight();


以上选自网络,但是我在自定义的layout里边自定义一个View,初始化时候取得View的getWidth()一直为零,我自己认为是只有屏幕显示后才能取得屏幕的大小,然后getWidth()值才不为0,所以可以另起一个线程判断不为零时再做别的事.
分享到:
评论

相关推荐

    浅析Android中getWidth()和getMeasuredWidth()的区别

    getWidth()获取的是这个view最终显示的大小,这个大小有可能等于原始的大小也有可能不等于原始大小。 1.getMeasuredWidth  从源码上来看,getMeasuredWidth()获取的是mMeasuredWidth的这个值。这个值是一个8位...

    解决Bitmap通过getWidth和getHeight获取尺寸不符的问题

    主要介绍了解决Bitmap通过getWidth和getHeight获取尺寸不符的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    Android范例

    { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5 }, { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5 }, { 5, 0, 0, 4, 4, 0, 0, 4, 4, 0, 0, 4, 4, 0, 0, 4, 4, 0, 0, 5 },...

    自定义组合控件之删除文本框

    ”为 EditText 赋值时,可能这个自定义组合控件还未初始化完成,getWidth 得到的值会为0,建立的删除按钮就会不可见。那么为什么不在创建 EditText 的时候创建呢?我本着不浪费资源的原则,就要在我需要的时候才创建...

    android图像绘制(二)画布上放大缩小问题

    android中图像在画布上放大缩小时,图像的边框... matrix.postScale(canvas.getWidth()*1.01f/bmpBg.getWidth(), canvas.getHeight()*1.01f/bmpBg.getHeight(), bmpBg.getWidth() / 2, bmpBg.getHeight() / 2); matri

    J2ME手机游戏打泡泡开源教程,源码

    int bubbleBoundaryX = BubbleCanvas.sWidth - getWidth() / 2; int bubbleBoundaryY = BubbleCanvas.sHeight- getWidth() / 2; if (type > 0) { int tempY; int tempX; tempX = x + xSpeed; ...

    qt学习之路之时钟带背景图片

    width=bin->getWidth(); //左边主显示面板宽度与高度的获取 height=bin->getHeight(); width1=bin1->getWidth();//左边预测面板的宽度与高度的获取 height1=bin1->getHeight(); width2=bin2->getWidth();//...

    安卓手机游戏 射击游戏java代码

    if (noCollisionCount%2==0){ canvas.drawBitmap(player1, x1, y1, paint); } }else { canvas.drawBitmap(player1, x1, y1, paint); } /* if (Hp>=3){ canvas.drawBitmap(hp,0,h-hp.getHeight(),paint); ...

    自定义下拉弹出框

    // 设置为true,才能获得焦点,其里面的空间才能响应事件 //true if the popup can be focused, false otherwise popupWindow = new PopupWindow(lv, et_qq.getWidth() / 5 * 4, et_qq.getWidth(), true); ...

    Java将多张图片合成为一张图像.rar

    Java将多张图片合成为一张,类似于PhotoShop中的合成图片,将两张图片合成输出为一张JPG,两幅图像叠加在一起,这是个比较基础的Java图像合成的例子。在JAVA中实现图片合成,本例的实现核心代码如下:  InputStream...

    自己編的 俄羅斯方塊

    // System.out.print(" ,x="+p3.getWidth()+" y="+p3.getHeight()); p.draw(next); } public void initp() { p.initmap(); while(!p.gameOver()) { p4.getScors(String.valueOf(p.count)+" ponit"); ...

    图像绘制——行走中的人

    src.left = bitmap.getWidth() / 4 * column; src.top = bitmap.getHeight() / 4 * line; src.right = src.left + bitmap.getWidth() / 4; src.bottom = src.top + bitmap.getHeight() / 4; det.left = ...

    二维码生成器

    getWindowManager getDefaultDisplay getWidth ; dstTop centerView getTop height getWindowManager getDefaultDisplay getHeight ; dstWidth centerView getRight centerView getLeft width...

    VS2015 C++ MFC 等比缩小图片分辨率大小

    oldimg.Draw(newimg.GetDC(), 0, 0, nWidth, nHeight, 0, 0, oldimg.GetWidth(), oldimg.GetHeight()); newimg.ReleaseDC(); ::SetBrushOrgEx(newimg.GetDC(), 0, 0, NULL); newimg.ReleaseDC(); ::...

    java 用2d美化JButtonDemo.rar

    int w=c.getWidth(); float tran=1F; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); GradientPaint p1; GradientPaint p2; p1=new GradientPaint(0,0,new ...

    MFC实现在jpg图片添加文字水印,位置可调整可存储(实测可用)

    int ix = m_pBmp->GetWidth(); int iy = m_pBmp->GetHeight(); Brush *brush = new SolidBrush(Color(0, 0, 0)); // 黑字 Font *font = new Font(L"宋体", 14); PointF ptf; ptf.X = 10; ptf.Y = iy - 30; // 显示...

    Android利用BitMap获得图片像素数据的方法

    本文实例讲述了Android利用BitMap获得图片...bit.getPixels(pixels,0,bit.getWidth(),0,0,bit.getWidth(),bit.getHeight()); for(int i = 0; i < pixels.length; i++){ int clr = pixels[i]; int red = (clr & 0x0

    CDIB类完全代码

    // 为位图文件头分配空间,并初始化为0 m_lpBmpFileHeader = (LPBITMAPFILEHEADER)new BYTE[sizeof(BITMAPFILEHEADER)]; memset(m_lpBmpFileHeader, 0, sizeof(BITMAPFILEHEADER)); // 读取位图文件头 int ...

Global site tag (gtag.js) - Google Analytics