android 自定义控件,自定义属性设置

做listView的上拉下拉刷新,网上找了个历程。但是有些界面只有上拉刷新,有些界面是下拉刷新。觉得应该在xml里定义一个属性控制上下拉使能。


0、关于自定义控件:

自定义控件设计主要方式有:a) 继承于一种控件延伸自己的应用  b) 自己绘制,调用回调方法(监听的方式内部就是回调)


1、自定义属性设计

1.1  创建一个xml属性。在res / value 目录下创建一个attrs.xml 文件

<declare-styleablename="名称 = 自定义属性的类名">

 


1.2 在具体的自定义控件 文件中使用(xml布局文件) 

xmlns:test="http://schemas.android.com/apk/res/com.miloisbadboy"
test:is_up = "true"
test:is_down = "true"


note: xmlns:test="http://schemas.android.com/apk/res/com.miloisbadboy" 这句不加后续步骤是得不到自定义属性值的,但是又不会报错

其中test就是上文中 test:is_up的前缀名字了(域)

com.miloisbadboy  包名


1.3 在java代码中使用

        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.PullToRefreshView);//attrs 是自定义控件构造函数中传回来的  接着的是styleable的名字也就是自定义控件的名字
        is_up = a.getBoolean(R.styleable.PullToRefreshView_is_up, false);   //第一个值为attrs中的对应字段,系统字段用小横杆链接,第二个参数是默认参数
        is_down = a.getBoolean(R.styleable.PullToRefreshView_is_down, false);

PullToRefreshView_is_down 类名加自定义属性名。option+/ 不能提示的话,只能重启eclipse了骂人

属性值设置参考:

http://blog.csdn.net/ygc87/article/details/7336664


注:

format="reference"

可以直接使用资源的id  比如@drawable







 

posted @ 2014-03-27 10:24  也行  阅读(364)  评论(0编辑  收藏  举报