Android 中mipmap 和drawable的区别

1、px,即像素,1px代表屏幕上的一个物理像素点。

2、dp,dip:device independent pixels(设备独立像素),dp与dip一样,不同的设备有不同的显示效果,

3、sp,sp:scale-independent pixels(缩放独立像素),与缩放无关的抽象像素,它和dp很相似,但唯一的区别在于,Android系统允许用户自定义文字尺寸大小(小,正常,大,超大等),当文字尺寸是“正常”时,1sp=1dp=0.00625inch(英寸),当文字尺寸是“大”或“超大”时,1sp>1dp=0.00625inch

  1. dpi,dpi是像素密度,指的是在系统软件上指定的单位尺寸的像素数量,它往往是写在系统出厂配置文件的一个固定值

在android studio中我们创建项目后,在资源res文件中有drawable和mipmap两种存放图片的文件夹,在使用哪一个文件夹来存放图片,一直都很有争议:

android 在 API level 17 加入了 mipmap 技术,对 bitmap 图片的渲染支持 mipmap 技术,来提高渲染的速度和质量。

mipmap 是一种很早就有的技术了(纹理映射技术),android 中的 mipmap 技术主要为了应对图片大小缩放的处理,在android 中我们提供一个 bitmap 图片,由于应用的需要(比如缩放动画),可能对这个 bitmap 进行各种比例的缩小,为了提高缩小的速度和图片的质量,android 通过 mipmap 技术提前对按缩小层级生成图片预先存储在内存中,这样就提高了图片渲染的速度和质量。在API中通过 Bitmap 的 public final void setHasMipMap (boolean hasMipMap) 方法可以让系统渲染器尝试开启 Bitmap 的 mipmap 技术。但是这个方法只能建议系统开启这个功能,至于是否正真开启,还是由系统决定。

1、px,即像素,1px代表屏幕上的一个物理像素点。

2、dp,dip:device independent pixels(设备独立像素),dp与dip一样,不同的设备有不同的显示效果,

3、sp,sp:scale-independent pixels(缩放独立像素),与缩放无关的抽象像素,它和dp很相似,但唯一的区别在于,Android系统允许用户自定义文字尺寸大小(小,正常,大,超大等),当文字尺寸是“正常”时,1sp=1dp=0.00625inch(英寸),当文字尺寸是“大”或“超大”时,1sp>1dp=0.00625inch

4、dpi,dpi是像素密度,指的是在系统软件上指定的单位尺寸的像素数量,它往往是写在系统出厂配置文件的一个固定值

res 目录下面 mipmap 和 drawable 的区别也就是上面这个设置是否开启的区别。

mipmap 目录下的图片默认 setHasMipMap 为 true,drawable 默认 setHasMipMap 为 false。

google 建议大家只把 app 的启动图标放在 mipmap 目录中,其他图片资源仍然放在 drawable 下面。

drawable与mipmap都可用于存放项目的图片资源,那么对于开发而言,图片到底是放在mipmap文件夹下,还是drawable文件夹下呢?

一般我们在开发时,将项目内,即ui界面中的图片存放在drawable中,然后将app的icon图标存放在mipmap文件夹下

为了让图片在屏幕上做到很好的适配,则一个项目中会有多套图:drawable,drawable-ldpi,drawable-mdpi等。这会造成一个弊端,那就是apk的包特别大。大部分情况下,我们都只会做一套切图,于是便建议在xdhpi中作图,即以分辨率720x1280的手机屏幕为基础作图。此尺寸兼顾了美观性、经济性和计算的简单。切图放在drawable-xhdpi文件夹下,然后计算的话直接 1dp=2px换算。

如果你希望一个图片在不同手机上显示的px数值不变,那么你可以将此图片放到drawable-nodpi文件夹中,假如你该图片在mdpi手机上宽度为10px(10dp),在xhdpi中宽度则是10px(5dp)

1、android:exported 是 Android中的四大组件 Activity,Service,Provider,Receiver 四大组件中都会有的一个属性。

2、android:exported 代表是否能被其他应用隐式调用。

3、true允许被启动,false不允许被启动。

4、android:exported 默认值是由有无intent-filter决定的,如果有intent-filter,默认值为true,否则为false。

5、android:exported = false的情况下,这个Activity将只会被当前Application或者拥有同样user ID的Application的组件调用,对于其他应用,即使有intent-filter匹配,也无法打开,即无法被其他应用隐式调用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值