android的组件开发教程,Android学习指南之三十三:自定义Android UI组件的方法-程序员宅基地

技术标签: android的组件开发教程  

我们为什么需要自定义Android UI组件呢?这是由于有很多Activity使用的View顶部的控件是差不多的,就像HTML页面里面我们有自己的header这样的东西,那我们可能应该将其统一到一块,但是view顶部又不是简单的统一的格式,里面有一些控件的样式或者文字还是有不同的,所以这里就需要有一个定制化的UI,然后我们可以设置这个UI的某一些自定义属性来满足不同的需求。

这次我们自定义的这个组件是一个RelativeLayout里面包含了三个View,左边一个返回Button,右边可能有一个操作Button也可能没有,然后中间有一个TextView。

下面来说一下自定义的步骤:

1、在Layout里面创建一个view的xml文件,然后使用Merge标签来包含子元素,这里是两个Button元素以及一个Text元素。

2、新建一个java类继承一个View类,我们这里是一个RelativeLayout,然后实现这个类的初始化方法,里面主要功能是根据传入的参数来设置里面的子元素。

Java代码publicclassTopBarWidgetextendsRelativeLayout{

publicTopBarWidget(Context context, AttributeSet attrs) {

super(context, attrs);

setGravity(Gravity.CENTER);

LayoutInflater.from(context).inflate(R.layout.top_bar_widget,this,true);

TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.TopBarWidget,0,0);

String text = array.getString(R.styleable.TopBarWidget_title);

if(text !=null){

((TextView) findViewById(R.id.top_bar_title)).setText(text);

}

Drawable dw=array.getDrawable(R.styleable.TopBarWidget_actionBtnImg);

if(dw!=null){

((ImageButton) findViewById(R.id.top_bar_action)).setBackgroundDrawable(dw);

}

}

}

3、在使用这个自定义方法的地方用这个类的全路径来作为标签名字,然后可以传入这个类的父类能够使用的属性,然后也可以使用自定义的属性,使用自定义属性的时候需要加上自己的名字空间,自己的名字空间需要在根目录里面定义,值的格式是:"http://schemas.android.com/apk/res/"。

XML/HTML代码

android:layout_width="fill_parent"

android:layout_height="68dip"

android:background="#333333"

TopBarWidget:title="@string/edit_event_title"

TopBarWidget:actionBtnImg="@drawable/create_ok"

/>

4.在attrs里面声明自定义的属性,比如上面的title以及actionBtnImg。

XML/HTML代码

这样你就可以使用你的自定义UI控件了。

2012年10月13日

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42433412/article/details/117275408

智能推荐

Word实现论文编辑中大批量公式居中,编号右对齐格式,同时消除编号上下不居中问题,完全版!!_中文论文怎么样公式居中但是编号右对齐-程序员宅基地

文章浏览阅读403次,点赞5次,收藏4次。3.根据制表位调整公式:将公式左对齐为初始状态,光标移到最左边---->点击“Tab”------>光标移到公式和编号之间---->点击“Tab”解决方案:修改格式---->格式---->段落---->中文版式---->文本对齐方式选择“居中”(2)点击第一次Tab:此时公式居中(对齐居中制表位),然后将光标移到公式和编号之间。2.点击Tab,将光标移到公式和编号之间,再次点击Tab。(3)第二次点击Tab:编号就会右对齐(右对齐制表位)可以看到,通过设置格式的方式实现了公式的简化设置。_中文论文怎么样公式居中但是编号右对齐

粒子群优化算法PSO与鹈鹕优化算法(POA)求解无人机三维路径规划(MATLAB代码)-程序员宅基地

文章浏览阅读425次,点赞5次,收藏6次。close allclearclc% 创建模型F='F1';%获取函数信息pop=100;%种群大小(可以自己修改)maxgen=100;%最大迭代次数(可以自己修改)%'路径成本','威胁成本','高度成本','转角成本'%% 计算航迹坐标%% 保存各算法的目标函数值及收敛曲线%% 保存航迹坐标。

LF和CRLF的区别_crlf与lf区别-程序员宅基地

文章浏览阅读363次。LF:Line Feed,即换行("\n"),Linux系统环境下的换行方式。CRLF:Carriage Return Line Feed,即回车换行("\r\n"),Windows系统环境下的换行方式。_crlf与lf区别

eclipse 格式化代码 快捷键_eclipse格式化代码快捷键-程序员宅基地

文章浏览阅读1.4k次。按下相应的快捷键后,Eclipse将自动根据您的代码格式化偏好设置对代码进行格式化。请确保已经选择和配置了适合您编码风格的格式化规则和偏好设置。您可以在Eclipse的首选项(Preferences)> Java > 代码风格 > 格式化 中进行相关配置。请注意,这些快捷键在默认情况下适用于Java代码,但可以在其他编程语言中进行使用。如果您正在使用不同的编程语言,请查看相应语言的格式化快捷键配置。_eclipse格式化代码快捷键

网页中实现安卓手机在线预览PDF文件_pdf文件手机在线浏览-程序员宅基地

文章浏览阅读1.4w次,点赞2次,收藏19次。苹果手机可以直接在线预览PDF文件,而安卓手机不行,必须得下载(如图),所以需要解决一下1.准备所需js文件(1)js下载地址https://mozilla.github.io/pdf.js/(2)下载步骤 ①:打开网址后,点击图中的“Download”②:选择版本,直接下载即可2.在项目中导入相关JS文件(如图)3.编写代码(1)引入js文件..._pdf文件手机在线浏览

【OTFS与信号处理:论文阅读2】基于OTFS调制的迭代信道估计与检测算法_otfs叠加导频-程序员宅基地

文章浏览阅读1.8k次,点赞8次,收藏36次。【OTFS与信号处理:论文阅读】基于OTFS调制的迭代信道估计与检测算法 Iterative Channel Estimationand Data Detection Algorithm For OTFS Modulation_otfs叠加导频

随便推点

设备像素比-程序员宅基地

文章浏览阅读1.6k次,点赞2次,收藏4次。设备像素(又称为物理像素): 指设备能控制显示的最小物理单位,意指显示器上一个个的点。从屏幕在工厂生产出的那天起,它上面设备像素点就固定不变了,和屏幕尺寸大小有关,设备屏幕的物理像素,任何设备的物理像素的数量都是固定的,单位pt,磅css像素(也叫虚拟像素):指的是 CSS 样式代码中使用的逻辑像素,在 CSS 规范中,长度单位可以分为两类,绝对(absolute)单位以及相对(relative)单位。px 是一个相对单位,相对的是设备像素(device pixel)DPR(设备像素比):设备像素比 =_设备像素比

Arcgis空间分布方向性分析_标准差椭圆-程序员宅基地

文章浏览阅读2.6w次,点赞44次,收藏246次。Arcgis空间分布方向性分析一、标准差椭圆方法概述空间分布方向性分析是指区域经济属性在空间分布上的轮廓和主导方向。 标准差椭圆法是分析空间分布方向性特征的经典方法之一,使用标准差椭圆可 从全局的、空间的角度定量解释经济要素空间分布的中心性、展布性、方向性和 空间形态等整体性特征,因其直观性与有效性已得到广泛应用,已成为 Arc GIS 空间统计模块的常规统计工具。SDE 方法生成的结果为一个椭圆,从其生 成算法来看,首先用平均中心来确定椭圆的圆心,然后由平均中心作为起点 对 X 坐标_标准差椭圆

Java学习之路(一):不走弯路,就是捷径!!-程序员宅基地

文章浏览阅读398次。­ 在ChinaITLAB导师制辅导中,笔者发现问得最多的问题莫过于"如何学习编程?JAVA该如何学习?"。类似的问题回答多了,难免会感觉厌烦,就萌生了写下本文的想法。到时候再有人问起类似的问题,我可以告诉他(她),请你去看看《JAVA学习之路》。拜读过台湾蔡学镛先生的《JAVA夜未眠》,有些文章如《JAVA学习之道》等让我们确实有共鸣,本文题目也由此而来。   软件开发之路是

ElementUi Carousel 走马灯,自定义el-carousel箭头左右切换-程序员宅基地

文章浏览阅读2.7w次,点赞25次,收藏58次。一 效果图需求是我自己要自定义左右切换的箭头图片,每个页面里面显示6组数据。二 上代码:autoplay="false" 不需要自动轮播arrow="never" 不需要自带的箭头indicator-position="none" 不需要底部的指示器重点在于 ref=“cardShow”调用方法<el-carousel :autoplay="false" height="72px" arrow="never" indicator-position="none.._el-carousel

Mybatis-plus >>>>>从入门到入狱_mybatisplus中的->作用是什么-程序员宅基地

文章浏览阅读533次,点赞5次,收藏7次。一、什么是Mybatis-plusMybatis的出现 是为了简化JDBC的复杂操作,而Mybatis-plus的出现则是为了简化Mybatis的操作,它不会改变mybatis原有的东西,只会在原有的基础上增加功能,可以说,它是非入侵式的,蕴含了AOP的思想二、Mybatis-plus的特点无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service_mybatisplus中的->作用是什么

十二、结构型模式----亨元模式_是亨元模式还是享元模式-程序员宅基地

文章浏览阅读130次。一、亨元模式享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。FlyWeightFactory负责创建和管理享元单元,当一个客户端请求时,工厂需要检查当前对象池中是否有符合条件的对象,如果有,就返回已经存在的对象,如果没有,则创建一个新对象,FlyWeight是超类。一提到共享池,我们很容易联想到Java里面的JDBC连接..._是亨元模式还是享元模式

推荐文章

热门文章

相关标签