android 积累
图片资源 图片资源是简单的Drawable资源,目前Android支持的图片格式有:gif、png、jpg等。我们只需要把图片资源放置到\res\drawable目中,那么在编译后的R.java类中就会生成图片资源的资源ID 注:Android中drawable中的资源名称有约束,必须是: [a-z0-9_.](即:只能是字母数字及_和.),而且不能以数字开头,否则编译会报错: Invalid file name: must contain only [a-z0-9_.] android:background="@drawable/message_item_bg" 单位 dip: device independent pixels(设备独立像素),不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖于像素。 dp:(与密度无关的像素),一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。 sp:scaled pixels(放大像素),主要用于字体显示best for textsize。与dp类似,但是可以根据用户的字体大小首选项进行缩放。 根据 google 的建议,TextView 的字号最好使用 sp 做单位,而且查看TextView的源码可知Android默认使用sp作为字号单位。 px: pixels(像素)屏幕上的点。不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。 pt: point(磅),是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用。 in(英寸):长度单位。 mm(毫米):长度单位。 density,直译密度,在显示领域里表示每平方英寸的像素点密度,每个像素点可以近似看作屏幕上的一个发光点,点的密度越大,则显示效果越清晰,在单位面积下显示内容越多。 分辨率(resolution,港台称之为解析度)就是屏幕图像的精密度,是指显示器所能显示的像素的多少。由于屏幕上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以分辨率是个非常重要的性能指标之一。可以把整个图像想象成是一个大型的棋盘,而分辨率的表示方式就是所有经线和纬线交叉点的数目。
Android平台定义的主题样式: android:theme="@android:style/Theme.Dialog" 将一个Activity显示为对话框模式 •android:theme="@android:style/Theme.NoTitleBar" 不显示应用程序标题栏 •android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 不显示应用程序标题栏,并全屏 •android:theme="@android:style/Theme.Light" 背景为白色 •android:theme="@android:style/Theme.Light.NoTitleBar" 白色背景并无标题栏 •android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" 白色背景,无标题栏,全屏 •android:theme="@android:style/Theme.Black" 背景黑色 •android:theme="@android:style/Theme.Black.NoTitleBar" 黑色背景并无标题栏 •android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 黑色背景,无标题栏,全屏 •android:theme="@android:style/Theme.Wallpaper" 用系统桌面为应用程序背景 •android:theme="@android:style/Theme.Wallpaper.NoTitleBar" 用系统桌面为应用程序背景,且无标题栏 •android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen" 用系统桌面为应用程序背景,无标题栏,全屏 •android:theme="@android:style/Translucent" 半透明效果 •android:theme="@android:style/Theme.Translucent.NoTitleBar" 半透明并无标题栏 •android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" 半透明效果,无标题栏,全屏 •android:theme="@android:style/Theme.Panel" Android平台定义了三种字体大小: "?android:attr/textAppearanceLarge" "?android:attr/textAppearanceMedium" "?android:attr/textAppearanceSmall" Android字体颜色: android:textColor="?android:attr/textColorPrimary" android:textColor="?android:attr/textColorSecondary" android:textColor="?android:attr/textColorTertiary" android:textColor="?android:attr/textColorPrimaryInverse" android:textColor="?android:attr/textColorSecondaryInverse" Android的ProgressBar样式: style="?android:attr/progressBarStyleHorizontal" style="?android:attr/progressBarStyleLarge" style="?android:attr/progressBarStyleSmall" style="?android:attr/progressBarStyleSmallTitle" 分隔符 横向: <View android:layout_width="fill_parent" android:layout_height="1dip" android:background="?android:attr/listDivider" /> 纵向: <View android:layout_width="1dip" android:layout_height="fill_parent" android:background="?android:attr/listDivider" /> CheckBox样式 style="?android:attr/starStyle" 类似标题栏效果的TextView style="?android:attr/listSeparatorTextViewStyle" 其它有用的样式 android:layout_height="?android:attr/listPreferredItemHeight" android:paddingRight="?android:attr/scrollbarSize" style="?android:attr/windowTitleBackgroundStyle" style="?android:attr/windowTitleStyle" android:layout_height="?android:attr/windowTitleSize" android:background="?android:attr/windowBackground" 修改Activity的标题栏样式 如在styles.xml中增加 <resources> <style name="AutoWindowTitleBackground"> <item name="android:background">#778899</item> </style> <style name="autoWindowTitlebar" parent="android:Theme"> <item name="android:windowTitleSize">32dp</item> <item name="android:windowTitleBackgroundStyle">@style/AutoWindowTitleBackground</item> </style> </resources> 接着再修改AndroidManifest.xml文件,找到要自定义标题栏的Activity,添加上android:theme值,比如: <activity android:name=".MainActivity" android:theme="@style/autoWindowTitlebar"> 去掉所有Activity界面的标题栏 修改AndroidManifest.xml 在application 标签中添加android:theme=”@android:style/Theme.NoTitleBar”