Android自定义控件封装之自定义属性的实现
在开发中有时候我们需要去自定义一些组合控件,而在使用过程中,又想要自己的组合控件能有原生控件那样可以在xml中使用属性控制,那么我们就需要去自定义一些属性了
1:首先在values/attrs.xml中进行属性的定义
<?xml version="1.0" encoding="utf-8"?>
<resources><declare-styleable name="MyAppTitle"><attr name="TitleText" format="string"/><attr name="LeftText" format="string"/><attr name="RightText" format="string"/></declare-styleable></resources>
2:在定义好这些属性后,就需要在自己自定义的类中进行获取和操作了
public MyAppTitle(Context context, AttributeSet attrs) {super(context, attrs); TypedArray ta = context.obtainStyledAttributes(attrs,R.styleable.MyAppTitle); mLeftText = ta.getString(R.styleable.MyAppTitle_LeftText); mTitleText = ta.getString(R.styleable.MyAppTitle_TitleText); mRightText = ta.getString(R.styleable.MyAppTitle_RightText); Log.e("Fizzer",mLeftText+mRightText+mTitleText); }
3:接下来就可以在xml文件布局中进行使用了
<com.fizzer.anbangproject_dahuo_test.Widget.MyAppTitle android:id="@+id/viewMyAppTitle" android:layout_width="match_parent" android:layout_height="wrap_content" fizzer:TitleText="标题" fizzer:LeftText="左边" fizzer:RightText="右边"/>
还有一点要注意的就是,别忘了在根布局中进行命名空间的声明
xmlns:fizzer="http://schemas.android.com/apk/res-auto"
命名空间的名字是可以自定义的,比如文中的“fizzer”,开发者可以自己自行定义,但是在xml文件使用中一定要使用自己定义的命名
4:最后说一点的就是,在attrs文件中styleable中的命名是可以自定义的,但是为了在书写布局文件时有属性的提示功能,所以最好还是保持自定义控件的类名与styleable的命名一致,当然,Google也支持和鼓励开发者使用对应的类名来作为styleable的命名
Android自定义控件封装之自定义属性的实现相关推荐
- Android自定义控件及自定义属性
Android自定义控件及自定义属性 自定义控件 创建自定义控件 自定义一个类,继承View 继承View还是哪个类,取决于你要实现一个什么样的控件 如果你要实现的是一个线性布局的组合控件,就可以继承 ...
- 我的新书《Android自定义控件入门与实战》出版啦
前言:当你回首往事时,不以虚度年华而悔恨,不以碌碌无为而羞耻,那你就可以骄傲的跟自己讲,你不负此生 [Android自定义控件入门与实战]勘误:https://blog.csdn.net/harvic ...
- Android 自定义控件打造史上最简单的侧滑菜单
侧滑菜单在很多应用中都会见到,最近QQ5.0侧滑还玩了点花样~~对于侧滑菜单,一般大家都会自定义ViewGroup,然后隐藏菜单栏,当手指滑动时,通过Scroller或者不断的改变leftMargin ...
- 精通Android自定义View(五)自定义属性值使用详情
1 可查看Android自定义View的基本使用 1 精通Android自定义View(一)自定义控的基本使用 2 精通Android自定义View(二)自定义属性使用详解 2 string 字符串 ...
- 精通Android自定义View(四)自定义属性使用详解
1.简述 对于自定义属性,遵循以下几步,就可以实现: 自定义一个CustomView(extends View )类 编写values/attrs.xml,在其中编写styleable和item等标签 ...
- Android自定义控件之流式布局
效果图: 一.首先创建我 们的自定义流式布局 public class FlowLayoutView extends ViewGroup {public FlowLayoutView(Context ...
- Android自定义控件ImageViwe(一)——依据控件的大小来设置缩放图片显示
功能: 自定义 ImageView 设置显示图片,如果图片的宽与高小于控件的宽与高,就将图片设置显示到控件的中央, 如果图片的宽与高有一项大于控件的宽与高,那么就将图片进行缩放显示,两者者是显示在控件 ...
- Android自定义控件--仿安全卫士中的一键加速【圆形进度条】
最近看到a10615的:Android自定义控件–仿安全卫士中的一键加速.自己零零散散学习了几个月,也想尝试下.几天的功夫总算把它弄出来,虽然没有泓洋的强大,但是该有的自定义属性也有了,先来看看效果图 ...
- Android自定义控件之实现快速检索
前言:关于这个快速检索我们平常见到的app应用的很多,比如手机通讯录联系人.微信朋友,以及其他的商品列表等,实现的功能就是通过右侧或者左侧的字母进行快速检测,OK!今天我就带领大家来实现这个功能! - ...
- Android自定义控件三部曲文章索引
前言:在我从C++转到Android时,就被Android里炫彩斑斓的自定义控件深深折服,想知道如果想利用C++实现这些功能,那是相当困难的.从那时候起,我就想,等我学会了自定义控件,一定要写一篇系列 ...
最新文章
- iptables基础知识.详解
- Java.lang.IllegalStateException Activity has been destroyed
- OSPF协议概述(一)
- php如何读出xml的节点内容 两个例子
- python复制sheet_python excel sheet复制
- 开发过程中编写的一些批处理
- wannacry哭泣勒索病毒一键修复工具
- Map 集合的循环遍历 4 种方式
- 网络分析shell脚本(实时流量+连接统计)
- 开机加电到系统打开究竟发生了什么?(1)
- python求解LeetCode习题Compare Version Numbers
- MYSQL存储过程,错误处理机制
- 分享17个老罗Android开发视频教程(免费下载)
- 疯狂java讲义第六章课后习题答案
- win11桌面怎么添加桌面小组件 Windows11添加桌面小组件的步骤方法
- Kanzi Shader入门
- 我的那些年~小小少年~小屁孩
- 125亿元!华为公开晒年终奖
- Ubuntu 上安装 Freemind 并支持中文
- Node.js - 自我总结
热门文章
- Android Architecture Components 系列(五)Room
- Java基础知识强化之网络编程笔记22:Android网络通信之 Android常用OAuth登录(获取个人信息)...
- machine learning(8) -- classification
- Servlet的request.getRemoteAddr()方法回去地址是0:0:0:0:0:0:0:1
- js 的 protype 小总结
- python+selenium自动化测试环境搭建
- Ruby数组(2):数组方法详细整理
- java反射对实体类取值和赋值,可以写成通过实体类获取其他元素的数据,很方便哦~~~...
- github note
- 算法学习笔记(八) 动态规划的一般求解方法