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文件夹,这里展示所有该平台开发需要的资源。

2、如果让你如何重写系统的默认属性,你该怎么办呢?比如说,重写Spinner控件的默认样式和下拉选项样式。
3、上面我们讲解了Android项目结构,了解每个res下属文件夹的作用,那样我们修改起来显得很方便了。上面例子想要修改Spinner样式,重写android:background=""属性可以完成,这里需要注意的是,添加什么样的属性值合适呢?
4、如果你不清楚怎么添加属性值,添加什么样的属性值合适,可以打开源码下的Spinner控件默认属性androi颊俄岿髭d:background=""属性值添加方式(需要说明的系统所有控件样式定义在Style.xml文件,组件样式定义在Themes.xml,控件属性定义在attrs.xml),EditPlus(下载)打开style.xml文件,Ctrl+F找到Spinner控件,如下图:

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

2、关于Spinner或ListView绑定数据的适配器使用,可以参考TeachCourse另外一篇文章《使用BaseAdapter需要注意的两个问题以及解决问题的办法》,可以使用的适配器有:BaseAdapter、ArrayAdapte、SpinnerAdapter
3、三者适配器之间的区别:ArrayAdapter和SpinnerAdapter绑定数据的方式可以手动定义Spinner下拉列表样式和默认样式:Array帆歌达缒Adapter,使用setDropDownViewResource(int)方法;SpinnerAdapter,使用回调方法getDropDownView(),如上面代码。BaseAdapter,只可以手动定义默认样式(暂不清楚怎么设置下拉列表),但BaseAdapter使用方法和SpinnerAdapter一样,推荐使用SpinnerAdapter。


