Android零散知识点积累
本文仅在记录android开发中遇到的零散知识点,会不断更新...
目录
1、隐藏系统标题栏 2、图片尺寸及屏幕密度
3、获取顶部状态栏高度
1、隐藏系统标题栏
1)在资源文件styles.xml中定义样式,继承系统Holo.Light主题
1 <!-- Base application theme. --> 2 <style name="NoTitleBar" parent="android:Theme.Holo.Light.NoActionBar"> 3 <!-- Customize your theme here. --> 4 </style>
在第三行可以加入自定义样式,修改系统默认样式。
2)AndroidManifest.xml给应用指定无标题样式
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/NoTitleBar" > <!-- activity 列表 --> </application>
附带系统支持的主题列表(从谦虚的天下那里拿的图,参考):
2、图片尺寸及屏幕密度
2.1 屏幕密度
根据像素分辨率,在屏幕指定物理宽高范围内能显示的像素数量。
在同样的宽高区域,低密度的显示屏能显示的像素较少,而高密度的显示屏则能显示更多的像素。
屏幕密度非常重要,因为其它条件不变的情况下,一共宽高固定的UI组件(比如一个按钮)在在低密度的显示屏上显得很大, 而在高密度显示屏上看起来就很小。
为简单起见,Android把所有的屏幕分辨率也分为四种尺寸:小,普通,大,超大(分别对应:small, normal, large, and extra large).
应用程序可以为这四种尺寸分别提供不同的资源-平台将透明的对资源进行缩放以适配指定的屏幕分辨率。
2.2 不同平台尺寸
四种屏幕尺寸分类:: small, normal, large, and xlarge
四种密度分类: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)
需要注意的是: xhdpi是从 Android 2.2 (API Level 8)才开始增加的分类.
xlarge是从Android 2.3 (API Level 9)才开始增加的分类.
DPI是“dot per inch”的缩写,每英寸像素数。
一般情况下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320,对应不同的drawable图片资源文件夹。
2.3 px、dpi及屏幕密度
pixels = dips * (density / 160)
density:屏幕密度,即上文所说120、160等。
3、获取顶部状态栏高度
public static int getStatusBarHeight(Window window) { Rect frame = new Rect(); window.getDecorView().getWindowVisibleDisplayFrame(frame); return frame.top; }