自定义控件 浅述

原创 2016年05月30日 16:11:22

自定义控件


1. 在res->values->attrs.xml中声明你要自定义的属性(如果没有 attrs.xml可以新建一个)
例如这个
attrs 的内容
其中 <declare-styleable name = "........."> 代指你要自定义属性的组的标题
比如我定义了一个自定义图片的组叫“MyImageView”后面就会引用的这个东西 后面再说
当然你也可以不用写这个东西 但是推荐还是写上毕竟项目不是一个人的项目
<attr name="key" format="内容的格式"> 指的的是你这个组下面的包含的属性
#在这给大家整理了format的值
“reference” //引用
“color” //颜色
“boolean” //布尔值
“dimension” //尺寸值
“float” //浮点值
“integer” //整型值
“string” //字符串
“fraction” //百分数,比如200%
枚举型的格式:
< attr name=”orientation”>
< enum name=”horizontal” value=”0” />
< enum name=”vertical” value=”1” />
< /attr>


2. 自定义控件类
比如我我将iamgeview进行了拓展 我就继承了imageView类
iamgeview类


然后实现父类的抽象类
一共有4个方法一般推荐 有两个就够了
两个方法
但是我只用了一个 哈哈
因为只传context 我不知道这么取属性
那么问题来了就算有attrs怎么取属性值
见图
取值
先通过
TypedArraytypedArray=context.obtainStyledAttributes(attrs,R.styleable.MyImageView);
拿到自定义控件的你定义的属性的组就是之前在attrs中写的
<declare-styleable name = ".........">
name属性拿到组之后就可以通过对象把值get出来了比如我要拿到图片的URL
imageUrl = typedArray.getString(R.styleable.MyImageView_ImageUrl);


就可以这么拿了 当然这个只是在xml中设置了这个属相才可以这样拿 要怎么拿这个值之后第3步给大家说
然后也可以在代码中设置这里的属性值
用代码拿值
用setImageUrlAndIsAche();方法键入值
这里面用了handler进行了页面刷新(因为这里用了网络获取图片很耗时所以有默认显示的图片)
handler
在这两步我觉得有两个方法大家要注意一下
一个是 invalidate(); 方法 指的是再次绘制这个view
特别声明这个方法是在handler中用的
另一个是recycle();方法
这个方法是在你拿到所有的属性值之后关闭属性对象 让其他人可以用这个属性对象


3. 在xml中引用自定义属性
xml


这里有两个小点一个是

xmlns:myiamgeview="http://schemas.android.com/apk/res/com.example.imagedemo"


代表的意思是
myiamgeview 是指的是下面你要调用”http://schemas.android.com/apk/res/com.example.imagedemo“这个工作空间的内容而起的名字可以自定义但不要用特殊字符Android可能不认
另一个是http://schemas.android.com/apk/res/com.example.imagedemo 这句话
你可以发现这句话跟
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
很相似实际上就是把Android换成了你的项目报名而已 换过来就代指了你自定义的属性了

demo下载点击这里

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android 刮刮卡效果 自定义控件实现

  • 2017年11月17日 10:57
  • 4.67MB
  • 下载

IReader打开书本,关闭书本动画的自定义控件

一,实现思路 实现的效果: 此控件主要是模仿IReader打开书本翻转以及放大特效,在看文章之前可以找本书来翻转加深理解,呵呵,开个玩笑,进入正题。 打开书本: 上层为cover,下层为conten...

Qt下自定义控件的制作与使用

  • 2017年11月03日 13:44
  • 1.12MB
  • 下载

自定义控件

  • 2017年09月25日 10:00
  • 10KB
  • 下载

自定义控件三部曲之动画篇(六)——ValueAnimator高级进阶(二)

前言:人生总有不平时,无论何时,不后悔就好。通过上两篇的讲解,我们对ValueAnimator的动画的整个过程应该都已经有较深入的理解,不过还有两个概念我们还没有讲解关键帧和ofObject(),关键...

FLTK自定义拖拽控件实现窗口分割

  • 2017年09月21日 20:44
  • 8.42MB
  • 下载

Android 自定义控件玩转字体变色 打造炫酷ViewPager指示器

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/44098729,本文出自:【张鸿洋的博客】1、概述本篇博客的产生呢,是因为,群里的...

自定义控件实现ViewPager指示器

  • 2016年03月20日 20:25
  • 4.7MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义控件 浅述
举报原因:
原因补充:

(最多只允许输入30个字)