欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android开发中自定义view、添加自定义属性

程序员文章站 2022-04-24 18:37:06
-----自定义view的步骤---: 1.写一个类继承view;在类中实现各种方法 2.在xml布局中使用自定义的控件,必须要写全路径,并且使用属性时需要申明命名空间; 3.在res/values...

-----自定义view的步骤---:

1.写一个类继承view;在类中实现各种方法

2.在xml布局中使用自定义的控件,必须要写全路径,并且使用属性时需要申明命名空间;

3.在res/values下创建atts.xml--声明给那个view添加自定义属性,

4.实现这个构造方法,在这里面吧属性解析出来:

 public autodefinebutton(context context, @nullable attributeset attrs)
public class autodefinebutton extends view {
    /*
    * 作为背景的图片
    * */
    private bitmap backgroundbitmap;
    /*
    * 可以滑动的图片
    * */
    private bitmap slidebtn;
    /*
    * 画笔
    * */
    private paint paint;

    //在代码里创建对象的时候调用此方法
    public autodefinebutton(context context) {
        super(context);
    }

    /*在布局中申明的view,自动调用此方法-----必须有此方法否则会报错
    *
    *attrs----对xml解析后的属性集合
    * */
    public autodefinebutton(context context, @nullable attributeset attrs) {
        super(context, attrs);
        /*typedarray是对attributeset中的原始数据安照图纸中(r.styleable.autodefinebutton实际上就是图纸)的申明类型创建出具体的对象
        *
        * */
        typedarray ta=context.obtainstyledattributes(attrs,r.styleable.autodefinebutton);
        int tacount=ta.getindexcount();//获得被加工过的对象的个数;----被使用的对象个数
for(int i=0;i

 

 

在xml中引用自定义的autodefinebtn:


    xmlns:lambo="https://schemas.android.com/apk/res/com.example.lambo.first"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".mainactivity"
    >
    

    lambo:test_msg="自定义的测试"
    />


------------在res/values下创建atts.xml--声明给那个view添加自定义属性---------------



    
    
        
        
        
        
        
        
    
;i++){>