内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
我对Android Drawable类的两个方法感到困惑:
getIntrinsicHeight()
getIntrinsicWidth()
这个词的内在高度/宽度是什么意思?我的意思是它是实际图像的宽度?
如果你想知道内在的含义,那只不过是对象所拥有的实际属性。在我们的例子中,getIntrinsicWidth / Height仅仅意味着为你提供该drawable的默认高度或宽度。
这会返回您在资源文件夹中放置的drawable的确切大小,而不进行任何修改。
假设你已经ImageVIew
在xml布局中提供了100 * 100 的宽度和高度,并且你用作背景的可绘制尺寸为200 * 200。
如果你的图像是从互联网上下载的,.getIntrinsicWidth()
并且.getIntrinsicHeight()
实际上分别为你提供图像的“真实”宽度和高度。
它被称为内在的,因为它仅取决于图像和其他任何东西。
这是你得到一个错误结果的地方。假设你正在使用默认的启动器图标:
Log.i("", "ic_launcher intrinsic width " + getResources().getDrawable(R.drawable.ic_launcher).getIntrinsicWidth());