当前位置:酷酷问答>生活百科>Android开发之源码分析,你不知道的秘密

Android开发之源码分析,你不知道的秘密

2024-11-28 16:28:15 编辑:zane 浏览量:555

Android开发之源码分析,你不知道的秘密

的有关信息介绍如下:

Android开发之源码分析,你不知道的秘密

Android项目结构无非是res和src这两个文件夹,src主要Java代码,res放置资源文件,Eclipse默认生成的资源文件包括:drawable、layout、values、menu,关于还可以存放哪个类型的资源文件呢?打开SDK路径下的platforms文件夹,随便打开一个平台,比如:android-23,如下路径——“E:\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-23\data\res”,找到res文件夹,这里展示所有该平台开发需要的资源。

在打开的res文件夹下,看到了其他在Eclipse创建项目时无法自动生成的anim、animator、color文件夹,这些文件夹在实际的项目开发中可以手动添加,存放的内容和系统提供的内容类型,哪天TeachCourse不记得res文件夹下 能够创建哪些文件夹时,不妨打开源码res文件夹看看哈。相当于我们可以在自己项目的res中重写系统这里的默认属性。

如果让你如何重写系统的默认属性,你该怎么办呢?比如说,重写Spinner控件的默认样式和下拉选项样式。

上面我们讲解了Android项目结构,了解每个res下属文件夹的作用,那样我们修改起来显得很方便了。上面例子想要修改Spinner样式,重写android:background=""属性可以完成,这里需要注意的是,添加什么样的属性值合适呢?

如果你不清楚怎么添加属性值,添加什么样的属性值合适,可以打开源码下的Spinner控件默认属性android:background=""属性值添加方式(需要说明的系统所有控件样式定义在Style.xml文件,组件样式定义在Themes.xml,控件属性定义在attrs.xml),EditPlus(下载)打开style.xml文件,Ctrl+F找到Spinner控件,如下图:

看到选项:@drawable/btn_dropdown即系统定义的默认Spinner的background属性,属性文件位于drawable/btn_dropdown.xml路径下,依次打开,找到该文件,如下图:

根据Spinner控件状态选择不同背景,我们要做的是:复制该文件到自己项目res/drawable中,修改各状态的背景样式(重写该属性),和美工商量定制一张自己“梦想”的背景:btn_dropdown_normal.png,最后引用定制的背景即可(这里使用blue_bg.9.png代替btn_dropdown_pressed.9.png),运行效果如下图:

在Spinner中未提供android:textColor=""属性,就好像ListView一样,提供适配器指定布局、内容的方式修改字体颜色,Spinner和ListView不同的是:Spinner有下拉选项布局和默认布局两种方式。

关于Spinner或ListView绑定数据的适配器使用,可以参考TeachCourse另外一篇文章《使用BaseAdapter需要注意的两个问题以及解决问题的办法》,可以使用的适配器有:BaseAdapter、ArrayAdapte、SpinnerAdapter

三者适配器之间的区别:ArrayAdapter和SpinnerAdapter绑定数据的方式可以手动定义Spinner下拉列表样式和默认样式:

ArrayAdapter,使用setDropDownViewResource(int)方法;

SpinnerAdapter,使用回调方法getDropDownView(),如上面代码。

BaseAdapter,只可以手动定义默认样式(暂不清楚怎么设置下拉列表),但BaseAdapter使用方法和SpinnerAdapter一样,推荐使用SpinnerAdapter。

修改Spinner控件颜色、样式和调整大小都不是啥事,只需要定义simple_spinner_item.xml布局和simple_spinner_dropdown_item.xml,然后引用自定义的而非系统的样式,即可实现修改Spinner字体颜色效果,如下图:

版权声明:文章由 酷酷问答 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.kukuwd.com/life/143329.html
热门文章