一、Android常见的度量单位

二、Android drawable的加载原理

图片如何缩放

若手机屏幕密度:320dp/xhdpi/2.0x
放在drawable-xhdpi目录下,图片显示原始大小,不会失真;
放在drawable-xxhdpi目录下,图片缩小,可能失真;
放在drawable-hdpi目录下,图片放大,失真;
如果放在drawable-nodpi目录下,无论手机什么分辨率,都会保持原图的大小,不缩放。
图片缩放大小=手机屏幕密度/图片所在的目录的dpi值

图片是否会失真

准备两部测试手机:
华为P7,分辨率为1920*1080,dpi为480
HTC T392,分辨率为800*480,dpi为240
现在有一套专门为dpi等于480的手机准备的切图放在drawable-xxhdi中。当P7加载该套切图时图片显示正常,当T392加载该套图片时图片被缩小,且缩小比为240/480=0.5。但是请注意两部手机分辨率的比值。其中,宽的比:480/1080=0.44;高的比800/1920=0.42;也就是说两个屏幕的分辨率的比大概是0.4,但是图片的缩放比是0.5,所以这两者的不一致导致了图片缩放后的失真。如果要使图片在HTC T392上不失真,那么需要按照0.4缩放图片,而非0.5.

为了摆脱这个桎梏,避免图片的缩放导致图片失真:

1、将切图放入drawable-nodpi中。
该文件夹中的图片不会被缩放,在不同分辨率的手机上都只显示原图的大小。如此以来,摒弃了系统对于图片的缩放,为我们以后自己处理图片的缩放做好了铺垫。
2、计算出缩放比。
依据不同的分辨率计算出缩放比。
总之,我们不再采用系统提供的对于图片的适配和缩放,而是自己确定一个准确的缩放比例将高分辨率的UI按照该比例缩放从而实现多分辨率的适配

参考文章:
Android多分辨率适配框架

更多相关文章

  1. android 保存图片到本地系统相册
  2. 转:android 图片叠加效果——两种方法
  3. android 通过 名称获取图片
  4. Android使用线程获取网络图片的方法
  5. Android中的多媒体显示之图片缩放
  6. android根据不同分辨率获取不同分辨率下的drawable\layout\val

随机推荐

  1. android sdk manager upgrade
  2. android ListView 异步加载图片
  3. proguard
  4. Android四种保存数据的方法
  5. Android(安卓)Service总结05 之IntentSer
  6. 2021.1.24
  7. 结构体的初级认识
  8. C语言函数的递归(上)
  9. 学习打卡1-24
  10. 记录我发现的第一个关于 Google 的 Bug