在我们实际开发其中.会碰见一些布局结构类似或者同样的界面.比如应用的设置界面.tabbutton界面等. 这时候.对于刚開始学习的人来说,xml里面一个个绘制出来也许是最初的想法.可能随着经验的积累,又学会一招.就是使用include标签,导入类似或者同样的布局,提高了性能又降低了代码:再以后呢,自己定义控件又能够实现这一目的.本文就是简单的使用自己定义的组合控件模仿猫眼底部菜单条. 1.自己定义组合控件属性:在res/values文件夹下创建attrs.xml文件 <declare-style…
自己定义控件是一些android程序猿感觉非常难攻破的难点,起码对我来说是这种,可是我们能够在网上找一些好的博客关于自己定义控件好好拿过来学习研究下,多练,多写点也能找到感觉,把一些原理弄懂,今天就讲下自己定义组合控件,这个特别适合在标题栏或者设置界面,看以下图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29kZXJpbmNoaW5h/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/7…
组合控件的使用 开发过程中,多个UI控件需要协同工作,相互交互之后,才可完成一个完整的业务需求,此时可把这些控件封装成为一个整体,相互之间的交互逻辑封装其中,外部调用可无需关心内部逻辑,只需获取处理后的结果即可 创建组合控件步骤如下:1.创建xml布局,定义组合控件的外观2.定义组合控件类,此类一般继承原生ViewGroup控件,如:LinearLayout 3.在组合控件类中获取对应UI控件,编写内部业务需求 ex:创建一个带textView的Button 1.xml布局文件textview_…
android 自定义空间 组合控件中 TextView 不支持drawableLeft属性.会报错Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class TextView.不知道原因,那位大神知道的告知我一下…
在Android的开发中,为了能够服用代码,会把有一定共有特点的控件组合在一起定义成一个自定义组合控件. 本文就详细讲述这一过程.虽然这样的View的组合有一个粒度的问题.粒度太大了无法复用,粒度太小了又 达不到很好的复用的效果.不过,这些不在本文的讨论范围,需要读者自己去开发的实践中体会. 实例项目就选择一个登录注册的组件,这组件包括用户名.密码的文本输入框,还有登录和注册的按钮.这里 主要是为了讲解的需要,在选择服用代码的力度上可以不用参考. 默认的当一个新的项目创建以后就会生成一个Acti…
Android中自定义控件的情况非常多,一般自定义控件可以分为两种:继承控件及组合控件.前者是通过继承View或其子类,重写方法实现自定义的显示及事件处理方式:后者是通过组合已有的控件,来实现结构的简化和代码的重用. 本篇文章主要介绍自定义组合控件,继承控件后续有机会再述. 自定义组合控件一般来说都是以ViewGroup及其子类(LinearLayout.RelativeLayout.FrameLayout等)为主,内部嵌套其他控件,来组合成一个新的控件,实现一些特定的需要,可以是代码简化,结构…
近日在android项目要使用开关控件.可是android中自带的开关控件不太惬意,所以就打算通过自己定义View写一个开关控件 ios的开关控件当然就是我要仿照的目标. 先上图:   watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">  分析: 开关控件,中包括了两个部…
Android原生的CalendarView根本无法满足我们日常开发的需要,在开发吾记APP的过程中,我觉得需要来一款高性能且美观简洁的日历控件,觉得魅族的日历风格十分适合,于是打算撸一款. github地址:https://github.com/huanghaibin-dev/CalendarView compile 'com.haibin:calendarview:1.0.2' 先上效果图: 动手之前我们需要分析一下魅族是怎么设计如此高性能的日历的,我们打开开发者选项中的显示布局边界: 好吧…
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); //获取SingleTouchView所在父布局的中心点 ViewGroup mViewGroup = (ViewGroup) getParent(); if(null != mViewGroup){ mParentWidth…
先上图 LEDView效果如图所看到的. 之前看到一篇博客使用两个TextView实现了该效果.于是我想用自己定义控件的方式实现一个LEDView.使用时就可以直接使用该控件. 採用组合控件的方式,将两个TextView叠放在一起.再使用digital-7.ttf字体来显示数据.从而达到LED的效果.代码例如以下: LEDView.class package ione.zy.demo; import java.io.File; import java.util.Calendar; import…