1 图片存放文件夹问题
同一张图片放在不同dpi的文件夹显示效果不同,android系统加载图片资源遵循下面的规则:首先判断手机的屏幕密度,然后在相应的密度下文件夹中查找图片资源。如果找到,则进行显示。如果找不到,则会从drawable或者其他drawable-*文件夹中寻找。找到后,将文件夹所表示的密度与手机实际密度进行比较,从而缩放图片。比如我的机器屏幕密度480dpi,用到了一张640x200的图片,这张图放在xxhdpi(480dpi)目录下得到的view高度刚好是200px,放在xhdpi(320dpi) 下得到的高度则是300px,显然是系统对图片先进行了放大。换了个320dpi的机器,放在xhdpi则刚好是200px,放到xxhdpi高度则是133px,这时候则对图片进行了缩小。
2 ScaleType问题
ScaleType的设置会影响图片的显示效果,但这个和图片本身没关系,其实改变的canvas的显示matrix,ImageView的内部实现使用了一个叫mDrawMatrix