1. 效果图

  aaarticlea/png;base64,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" alt="" />

2.  实现代码

  

  1. package com.example.timetest;
  2.  
  3. import android.content.Context;
  4. import android.util.AttributeSet;
  5. import android.widget.ImageView;
  6. import android.widget.LinearLayout;
  7. import android.widget.TextView;
  8.  
  9. public class ImageButton extends LinearLayout {
  10.  
  11. private ImageView mImageView;
  12.  
  13. private TextView mTextView;
  14.  
  15. public ImageButton (
  16. Context context , AttributeSet attrs ) {
  17.  
  18. super ( context , attrs );
  19.  
  20. mImageView = new ImageView ( context );
  21. mImageView.setImageResource ( R.drawable.add_tip );
  22. mImageView.setPadding ( 0 , 0 , 5 , 0 );
  23. mTextView = new TextView ( context );
  24. mTextView.setText ( "添加提醒" );
  25. setOrientation ( LinearLayout.HORIZONTAL );
  26. addView ( mImageView );
  27. addView ( mTextView );
  28.  
  29. }
  30.  
  31. }

3.  使用的图片

  aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAAh1BMVEX/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/////goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goL/goKcHLqoAAAALXRSTlMAAjd4rNLt+ByH4v8TlflW61cElwqzsZhZFf8e+uN50+w4WFqZBra0BRSI5O7ADc0xAAABA0lEQVQ4y42V6RaCIBBGR0RTJ8lCs8XM9s33f746tnEEZL6/3MMchuECoMZjPg/C0SgMuM88sCWKE1SSxJERG6cCexHpWOcmGRqSTXvYTKIlcqZyeYHWFLmy3xwHMv/vWeJgyi83RUcWn75kLjBcdqB24NXKWHxducFq/QJjdIMYv+ZgQwE3HjCkgMigpoE+cBrIYUsDt9DQwAaEsq7nP8N0kFyafBhye8gN31GvkDwU5DGDSLhB0ckldYPy/bga1+NqPgrau8ADUQDHnylOw0o5KZI627lLrursaq1eXnuG3JtFutCVe5O6muXNLPv7Q8Ue98j6L3is5kFbVW3A69738QSzTkFxawYzgQAAAABJRU5ErkJggg==" alt="" />

4.  使用自定义控件

 

  1.  <com.example.timetest.ImageButton
  2. android:id="@+id/add"
  3. android:layout_width="match_parent"
  4. android:layout_height="40dp"
  5. android:gravity="center" />

      Ok  完成了

  

Android -- 自定义控件(ImageButton)的更多相关文章

  1. Android自定义控件 开源组件SlidingMenu的项目集成

    在实际项目开发中,定制一个菜单,能让用户得到更好的用户体验,诚然菜单的样式各种各样,但是有一种菜单——滑动菜单,是被众多应用广泛使用的.关于这种滑动菜单的实现,我在前面的博文中也介绍了如何自定义去实现 ...

  2. android自定义控件——以滑动开关为例

    0.引言 (1)Android从4.0开始提供了switch的滑动开关效果组件,但是之前版本却没有 (2)很多时候我们写程序,都希望把有用的通用的通用的东西封装起来,以便以后重用. 本文根据组件开发思 ...

  3. Android自定义控件之自定义ViewGroup实现标签云

    前言: 前面几篇讲了自定义控件绘制原理Android自定义控件之基本原理(一),自定义属性Android自定义控件之自定义属性(二),自定义组合控件Android自定义控件之自定义组合控件(三),常言 ...

  4. Android自定义控件之自定义组合控件

    前言: 前两篇介绍了自定义控件的基础原理Android自定义控件之基本原理(一).自定义属性Android自定义控件之自定义属性(二).今天重点介绍一下如何通过自定义组合控件来提高布局的复用,降低开发 ...

  5. Android自定义控件之自定义属性

    前言: 上篇介绍了自定义控件的基本要求以及绘制的基本原理,本篇文章主要介绍如何给自定义控件自定义一些属性.本篇文章将继续以上篇文章自定义圆形百分比为例进行讲解.有关原理知识请参考Android自定义控 ...

  6. Android自定义控件之基本原理

    前言: 在日常的Android开发中会经常和控件打交道,有时Android提供的控件未必能满足业务的需求,这个时候就需要我们实现自定义一些控件,今天先大致了解一下自定义控件的要求和实现的基本原理. 自 ...

  7. Android自定义控件1

    概述 Android已经为我们提供了大量的View供我们使用,但是可能有时候这些组件不能满足我们的需求,这时候就需要自定义控件了.自定义控件对于初学者总是感觉是一种复杂的技术.因为里面涉及到的知识点会 ...

  8. 一起来学习Android自定义控件1

    概述 Android已经为我们提供了大量的View供我们使用,但是可能有时候这些组件不能满足我们的需求,这时候就需要自定义控件了.自定义控件对于初学者总是感觉是一种复杂的技术.因为里面涉及到的知识点会 ...

  9. [Xamarin.Android] 自定义控件

    [Xamarin.Android] 自定义控件 前言 软件项目开发的过程中,免不了遇到一些无法使用内建控件就能满足的客户需求,例如:时速表.折线图...等等.这时开发人员可以透过自定义控件的方式,为项 ...

随机推荐

  1. <td valign="center" align="left">

    单元格对齐方式:垂直居中,水平居左.

  2. 关于使用 no-js (Modernizr)

    最近有些朋友问到:为什么我的网页 code 有 class="no-js" ? <!DOCTYPE html> <html dir="ltr" ...

  3. 每秒执行一个shell脚本(转载)

      上周迁移了一台服务器,发现其中一个项目的数据没有更新,查询原服务器的数据,数据有更新,并找到了rsync服务,从其他服务器传输数据,那么如何找到这台服务器?因为是从远程传输到本地,而且不是很频繁, ...

  4. 在JS中关于堆与栈的认识function abc(a){ a=100; } function abc2(arr){ arr[0]=0; }

    平常我们的印象中堆与栈就是两种数据结构,栈就是先进后出:堆就是先进先出.下面我就常见的例子做分析: main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main( ...

  5. Vundle的安装

    1.Vundle.vim 安装 https://github.com/VundleVim/Vundle.vim 2.插件安装https://github.com/yangyangwithgnu/use ...

  6. 深入Nginx

    Nginx功能模块汇总 --with-http_core_module #包括一些核心的http参数配置,对应nginx的配置为http区块部分 --with-http_access_module # ...

  7. 用DateTime的ParseExact方法解析特殊的日期时间

    今天遇到一个特别的需求,需要从下面的字符串中转换成一个DateTime对象: [07-13 15:50:42] 主要问题是这个时间不是标准的时间,而是自定义的格式,即开头是月-日,然后是时间. 使用最 ...

  8. 【krpano】krpano xml资源解密(破解)软件说明与下载(v1.2)

    欢迎加入qq群551278936讨论krpano技术以及获取最新软件.   该软件已经不再维护,现在已经被KRPano资源分析工具取代,详情参见 http://www.cnblogs.com/reac ...

  9. mysql 优化实例之索引创建

    mysql 优化实例之索引创建 优化前: pt-query-degist分析结果: # Query 23: 0.00 QPS, 0.00x concurrency, ID 0x78761E301CC7 ...

  10. mysql 在windows下,使用 net start mysql 命令发生错误 服务名无效 或 1067

    mysql 在windows下,使用 net start mysql 命令发生错误 :服务名无效 或 1067  先使用mysqld -install安装一下 删除data目录下的日志等文件(因为之前 ...