一般在刚开始开发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,所以可以另起一个线程判断不为零时再做别的事.
分享到:
相关推荐
如果在hdpi设备上加载了放在mdpi目录的图片,那么BitmapFactory会将图片按1.5倍的比例缩放,这就是为什么通过getWidth和getHeight获取到的尺寸与实际图片尺寸不符的原因。 为了解决这个问题,我们可以采取以下两种...
LinearGradient gradient = new LinearGradient(0, 0, bitmap.getWidth(), 0, new int[]{Color.RED, Color.BLUE}, null, Shader.TileMode.CLAMP); paint.setShader(gradient); canvas.drawRect(new RectF(0, 0, ...
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawCircle(output.getWidth() / 2, ...
src.getPixels(pixels, 0, src.getWidth(), 0, 0, src.getWidth(), src.getHeight()); for (int i = 0; i ; i++) { int gray = getGrayValue(pixels[i]); if (gray > threshold) { pixels[i] = Color.WHITE; ...
graphics.DrawImage(imgOriginal, 0, 0, imgOriginal->GetWidth(), imgOriginal->GetHeight(), 0, 0, imgOriginal->GetWidth(), imgOriginal->GetHeight(), &attr); ``` 3. **直接操作像素数组**:如果你不依赖...
{ 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 },...
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); if (bitmap.getWidth() > bitmap.getHeight()...
”为 EditText 赋值时,可能这个自定义组合控件还未初始化完成,getWidth 得到的值会为0,建立的删除按钮就会不可见。那么为什么不在创建 EditText 的时候创建呢?我本着不浪费资源的原则,就要在我需要的时候才创建...
memDC.StretchBlt(0, 0, image.GetWidth(), image.GetHeight(), &image, 0, 0, image.GetWidth(), image.GetHeight(), SRCCOPY); // 绘制位图到内存DC // 用StretchBlt或BitBlt将内存DC的内容复制到窗口DC dc....
path.addRoundRect(new RectF(getPaddingLeft(), getPaddingTop(), getWidth() - getPaddingRight(), getHeight() - getPaddingBottom()), mCornerRadius, mCornerRadius, Path.Direction.CW); canvas.clipPath...
在图像处理领域,将彩色图像转换为灰度图像是一种常见的操作。在 Java 中,我们可以使用 Java AWT 和 Swing 库中的方法来实现这个功能。以下是一个详细的步骤和知识点讲解: 1. **理解彩色图像和灰度图像** - **...
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawCircle(output.getWidth() / 2, ...
int bubbleBoundaryX = BubbleCanvas.sWidth - getWidth() / 2; int bubbleBoundaryY = BubbleCanvas.sHeight- getWidth() / 2; if (type > 0) { int tempY; int tempX; tempX = x + xSpeed; ...
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawCircle(bitmap.getWidth() / 2, ...
width=bin->getWidth(); //左边主显示面板宽度与高度的获取 height=bin->getHeight(); width1=bin1->getWidth();//左边预测面板的宽度与高度的获取 height1=bin1->getHeight(); width2=bin2->getWidth();//...
在Android开发中,将图片裁剪为圆形是常见的需求,特别是在设计用户头像或者需要圆形展示的界面元素时。这个"Android裁剪图片为圆形图片Demo"提供了实现这一功能的实例代码,帮助开发者理解并应用到自己的项目中。...
canvas.drawRoundRect(new RectF(0, 0, bitmap.getWidth(), bitmap.getHeight()), bitmap.getWidth() / 2f, bitmap.getHeight() / 2f, paint); } paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_...