Android自定义控件及自定义属性
Android自定义控件及自定义属性
自定义控件
创建自定义控件
自定义一个类,继承View
继承View还是哪个类,取决于你要实现一个什么样的控件
如果你要实现的是一个线性布局的组合控件,就可以继承LinearLayout
如果你要实现的是一个布局复杂的组合控件,就可以继承RelativeLayout
具体根据实际情况
这里我要实现一个Android端的显示验证码的控件,我只继承View
package ……;import ……/*** Created by kongqw on 2015/10/23.*/
public class CheckView extends View {……public CheckView(Context context, AttributeSet attrs) {super(context, attrs);mContext = context;……}public void onDraw(Canvas canvas) {// 画界面……}……
}
类似的,如果你是继承了RelativeLayout,大概可以这样实现
package ……;import ……/*** Created by kongqw on 2015/7/10.*/
public class KTop extends RelativeLayout {private …………public KTop(Context context) {super(context);initView();}public KTop(Context context, AttributeSet attrs) {super(context, attrs);initView();}public KTop(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);initView();}/*** 初始化界面*/private void initView() {view = View.inflate(getContext(), R.layout.k_top, this);// 控件背景mTitleView = (RelativeLayout) view.findViewById(R.id.title_view);// 只举一个例子,这里可以获取的布局里的控件……}// 做一些其他操作的处理,例如控件的点击事件处理等……}
使用自定义控件
在布局文件中的使用
<kong.qingwei.demo.kqwcheckviewdemo.CheckViewandroid:id="@+id/checkView"android:layout_width="wrap_content"android:layout_height="50dp" />
自定义属性
定义自定义属性
在values文件夹下创建attrs.xml文件
name是自定义属性的名称
format是自定义属性的类型,有如下类型,就不一一介绍了
代码
<?xml version="1.0" encoding="utf-8"?>
<resources><declare-styleable name="CheckView"><!-- 随机点数 --><attr name="point_num" format="integer" /><!-- 随机线数 --><attr name="point_line" format="integer" /><!-- 验证码长度 --><attr name="text_length" format="integer" /><!-- 验证码字体大小--><attr name="text_size" format="integer" /><!-- 验证码字体颜色 --><attr name="text_color" format="color" /></declare-styleable>
</resources>
使用自定义属性
在使用自定义控件的xml文件里引入命名空间
xmlns:kongqw="http://schemas.android.com/apk/res-auto"
自定义属性的使用
kongqw:point_num="5"
示例
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:kongqw="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">……<kong.qingwei.demo.kqwcheckviewdemo.CheckViewandroid:id="@+id/checkView"android:layout_width="wrap_content"android:layout_height="50dp"kongqw:point_num="5" />……</LinearLayout>
效果图
Android自定义控件及自定义属性相关推荐
- Android开发技巧——自定义控件之自定义属性
Android开发技巧--自定义控件之自定义属性 掌握自定义控件是很重要的,因为通过自定义控件,能够:解决UI问题,优化布局性能,简化布局代码. 上一篇讲了如何通过xml把几个控件组织起来,并继承某个 ...
- Android 自定义控件打造史上最简单的侧滑菜单
侧滑菜单在很多应用中都会见到,最近QQ5.0侧滑还玩了点花样~~对于侧滑菜单,一般大家都会自定义ViewGroup,然后隐藏菜单栏,当手指滑动时,通过Scroller或者不断的改变leftMargin ...
- 【自定义控件】自定义属性
做 Android布局是件很享受的事,这得益于他良好的xml方式.使用xml可以快速 有效的为软件定义界面.可是有时候我们总感觉官方定义的一些基本组件不够用,自定义组件就不可避免了.那么如何才能做到像 ...
- android 自定义控件
自定义一般分三种情况 1. 自定义布局 2. 自定义控件 3.直接继承View 下面来着eoe例子,实现自定义控件 1. 自定义属性 res/values/attrs.xml 自定义属性 <?x ...
- Android自定义控件之流式布局
效果图: 一.首先创建我 们的自定义流式布局 public class FlowLayoutView extends ViewGroup {public FlowLayoutView(Context ...
- Android自定义控件ImageViwe(一)——依据控件的大小来设置缩放图片显示
功能: 自定义 ImageView 设置显示图片,如果图片的宽与高小于控件的宽与高,就将图片设置显示到控件的中央, 如果图片的宽与高有一项大于控件的宽与高,那么就将图片进行缩放显示,两者者是显示在控件 ...
- android自定义属性dimen,Android获取非自定义属性值
以Spinner的entries属性为例 创建values/attrs.xml文件,添加下述代码 获取属性 public AutoSpinner(Context context, AttributeS ...
- Android自定义控件--仿安全卫士中的一键加速【圆形进度条】
最近看到a10615的:Android自定义控件–仿安全卫士中的一键加速.自己零零散散学习了几个月,也想尝试下.几天的功夫总算把它弄出来,虽然没有泓洋的强大,但是该有的自定义属性也有了,先来看看效果图 ...
- android 自定义控件gif压缩包,android显示gif图片(自定义控件以及属性)
由于android所带的控件里面没有能够显示gif图片的 今天闲来无事,就来网上查查资料,打算搞一个能显示gif图片的自定义控件 网上的解决方法大致有三种 第一:先将gif图片分拆为N帧(由美工/软件 ...
最新文章
- vue实例没有挂载到html上,vue 源码学习 - 实例挂载
- 使用DRS的维护模式实现单个VM的测试
- POI Excel 如何插入新的行?
- nginx php-fpm调优
- 使用DeflateStream压缩与解压
- 使用snmp4j实现Snmp功能(二)
- ABAP webdynpro的view navigation和WebUI的view navigation
- 不可不知的Oracle常用技巧
- html搞笑注释,9个最有趣的代码注释
- 使用inspector功能查看和管理契约
- Spring Security xsd 异常
- 不要相信程序员在加班时间写的代码
- JetBrains全系列破解
- DRM系列(3)之DRM_IOCTL_MODE_MAP_DUMB
- SkeyeVSS综合安防监控视频云服务使用说明文档
- EXCEL公式-文本型数据转换为数值型数据
- Unity:DOTween来回运行或者缩放等LoopType.Yoyo
- 用canvas画转动的阴阳鱼
- 百钱买百鸡问题java_Java版百钱买百鸡
- INTEL G41时序