简单的问题却无法得到简单的答案。我有一个位图,我想在onDraw()方法中获取它的尺寸,以便按系统缩放到不同DPI屏幕上显示。bitmap.width()成功地返回其未缩放的宽度。然而,bitmap.getScaledWidth()返回0。我已经尝试了getScaledWidth(canvas)和getScaledWidth(canvas.getDensity()),但都返回0。事实上,canvas.getDensity()返回0,所以我甚至不能手动计算它。
我做错了什么?
稍微详细一点。我正在使用自定义视图。该位图在类中声明并在构造函数中加载。
编辑:
我发现使用:
我做错了什么?
稍微详细一点。我正在使用自定义视图。该位图在类中声明并在构造函数中加载。
编辑:
我发现使用:
DisplayMetrics metrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(metrics);
bitmap.getScaledHeight(metrics)返回的值与bitmap.getHeight()相同。
看起来,bitmap.getWidth()返回的是经过缩放后的位图的尺寸,这意味着没有明显的方法来获取位图的原始宽度。
new Canvas()
获取密度还是使用onDraw(Canvas)
接收的那个? - harism