Android 自定义View一(自定义属性)
来源:互联网 发布:手机后期制作软件 编辑:程序博客网 时间:2024/06/06 10:01
这里重温一下自定义View的开发流程,以下将完整的流程走一遍包括自定义属性、onDraw()、等。
继承View类
创建一个类并继承View类,当然如果需求不是很特别的话可以直接继承Android现有的控件拓展开发比如Button等,这些现有的控件类也是继承与View类
继承View类后创建至少一个的构造函数并执行super(context, attrs);
/** * 有多个构造函数默认需要实现有两个构造参数的构造函数 * @param context 上下文 * @param attrs Xml自定义属性通过这个类传递进来 */ public CustomView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); }
自定义属性
在XML布局中可以使用我们自定义的属性,并通过构造函数传递到类的实体中:
- 在res/values/attrs.xml声明自定义属性
- 在使用到自定义控件的layout中加入自身的命名空间
- 在自定义控件实体类的构造函数中获取属性值
声明自定义属性, name值一般为自定义控件的实体类名
<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="CustomView"> <attr name="isShow" format="boolean" /> <attr name="align" format="enum"> <enum name="left" value="1" /> <enum name="right" value="2" /> </attr> </declare-styleable></resources>
添加命名控件xmlns:app=”http://schemas.android.com/apk/res-auto”
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <com.example.xiaoxini2000.customview.CustomView android:layout_width="wrap_content" android:layout_height="wrap_content" app:isShow="true" app:align="left" /></android.support.constraint.ConstraintLayout>
在实体构造函数中获取属性value 注意:这里TypedArray 因为是共享资源,所以结尾一定要释放
/** * 有多个构造函数默认需要实现有两个构造参数的构造函数 * @param context 上下文 * @param attrs Xml自定义属性通过这个类传递进来 */ public CustomView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); TypedArray typedArray = null; try { typedArray = context.getTheme().obtainStyledAttributes(attrs,R.styleable.CustomView,0,0); isShow = typedArray.getBoolean(R.styleable.CustomView_isShow,false); align = typedArray.getIndex(R.styleable.CustomView_align); }finally { typedArray.recycle(); } }
0 0
- Android 自定义View一(自定义属性)
- Android自定义view自定义属性
- Android自定义View-自定义属性
- Android自定义View-自定义属性
- 自定义Android View属性
- Android自定义 view属性
- android 自定义view属性
- android 自定义view属性
- android View自定义属性
- Android 自定义View 之 自定义View属性
- Android自定义View(一)
- Android 自定义View (一)
- Android 自定义View (一)
- Android自定义View(一)
- Android 自定义View (一)
- Android 自定义View(一)
- Android 自定义View (一)
- Android 自定义View (一)
- Android RecyclerView 使用完全解析 体验艺术般的控件
- linux上解压tar.xz结尾的文件
- ora-12516 TNS: 监听程序无法找到匹配协议栈的可用句柄
- 填充布局的几种方式
- 数组工具类及数组转成集合的方法和注意事项
- Android 自定义View一(自定义属性)
- 给定一个数组 AA,除了一个数出现一次之外,其余数都出现三次。找出出现一次的数。
- Z-stack架构
- Windows系统下Android Studio快捷键总结
- python下安装networkx
- 制作swap的方法
- OpenGL解析法绘制旋转曲面--青花瓷
- 电话通信PSTN及物理知识整理,VOIP发展梳理
- 化学绘图软件ChemFinder怎样连接数据库