Android 定制控件有三种方式:
继承其它控件类(EditText、Button)
组合方式。当前控件类从容器类继承,并将若干个控件添加到当前的容器中。
绘制控件,也就是控件类从View继承,并在onDraw方法中从零绘制控件。例如,TextView。
下面介绍一个最经常,最频繁用的组合控件的例子:
mybutton.xml
Mybutton.java
应用:
实现:
继承其它控件类(EditText、Button)
组合方式。当前控件类从容器类继承,并将若干个控件添加到当前的容器中。
绘制控件,也就是控件类从View继承,并在onDraw方法中从零绘制控件。例如,TextView。
下面介绍一个最经常,最频繁用的组合控件的例子:
mybutton.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/iv" android:src="@drawable/ok" android:paddingTop="5dip" android:paddingBottom="5dip" android:paddingLeft="40dip" android:layout_gravity="center_vertical" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="确定" android:textColor="#000000" android:id="@+id/tv" android:layout_marginLeft="8dip" android:layout_gravity="center_vertical" /> </LinearLayout>
Mybutton.java
import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; public class MyButton extends LinearLayout { private ImageView mIv; private TextView mTv; public MyButton(Context context) { this(context,null); } public MyButton(Context context, AttributeSet attrs) { super(context,attrs); LayoutInflater.from(context).inflate(R.layout.mybutton, this, true); mIv = (ImageView)findViewById(R.id.iv); mTv = (TextView)findViewById(R.id.tv); } public void setImageResource(int resId) { mIv.setImageResource(resId); } public void setTextViewText(String text) { mTv.setText(text); } }
应用:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <com.example.mybu.MyButton android:id="@+id/bt_confirm" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:clickable="true" android:background="#FF0000" android:focusable="true" /> </RelativeLayout>
实现:
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; public class MainActivity extends Activity { private MyButton but; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); but = (MyButton)findViewById(R.id.bt_confirm); but.setTextViewText("好的"); but.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { but.setTextViewText("確定"); } }); } }
- Mybu.zip (1.4 MB)
- 下载次数: 1
发表评论
-
2048源码(核心算法有,缺少几个anctionbar,以后补上)
2014-09-25 13:22 14732048游戏基本上有四部分组成, 1:主activity,包含 ... -
android动画效果
2014-09-24 18:06 1115前几天弄alertdialog和popupwindow的时候, ... -
AlertDialog和PopupWindow
2014-09-18 15:44 1867区别:AlertDialog是非阻塞式对话框:AlertDia ... -
基础篇--resources资源
2014-09-12 15:18 499最近一直在做java开发,偶尔敲点android代码,突然发现 ... -
多点触摸(图片缩放为例)
2014-09-01 17:22 630多点触摸的事件跟单点是大同小异的,上个图片缩放的代码,供大家参 ... -
Toast的多种样式(附带Notification)
2014-09-01 13:48 897Toast以前用的时候一直以为只有文字提示,偶然得知也有多种样 ... -
Android Adapter详解(2)
2014-08-15 14:05 10以前Adapter一直用的不是太好,经过长时间的浸淫,现在可以 ... -
BroadcastReceiver简介
2014-08-14 16:27 648BroadcastReceiver作为四大 ... -
关于Android的Service
2014-08-14 13:57 434说起来真是羞愧,以前手机经常开机的时候,不会有任何QQ消息通知 ... -
在开发过程中易出的错误
2014-08-13 16:53 3701:如果继承ListActivity,那么layout中必须有 ... -
多媒体的浅尝辄止
2014-08-12 15:57 508下面简单讲几种Android的多媒体技术,音频,视频,摄像头, ... -
Sqlite无脑使用
2014-08-11 14:56 865不会sqlite的人再也不用愁了,无脑使用,只要会粘贴复制就O ... -
android弹出框
2014-08-11 11:23 493不得不说,android自带的弹出框真心丑,而且还不好用,接下 ... -
android几种数据存储方式
2014-08-11 10:45 687android数据存储方式 1:SharedPreferen ... -
SQLiteOpenHelper和ContentProvider区别
2014-08-06 15:08 1405Android中操作数据库主要有两种方法:使用SQLiteOp ... -
xml文件解析SAX
2014-08-05 13:45 467xml文件解析:xml文件解析有四种方式, 1.DOM生成和解 ... -
Android不常用代码(1)
2014-07-31 18:07 500目录 1:Webview 2:js交互 1:Web ... -
系统窗口的调用
2014-07-31 15:46 440直接上代码吧,intent进行调用 @Override ... -
fragment简单实用及数据传递(2)
2014-07-31 15:13 2525FragmentTransaction 进行数据传递 imp ... -
ActionBar简介
2014-07-31 10:47 675Action bar是一个标识应用程序和用户位置的窗口功能,并 ...
相关推荐
这个Demo主要实现如何将Android下几个原生的控件封装到一起,产生一个新的控件,称之为“android自定义组合控件”,这种控件可以简化代码,大家有空下载看看吧,谢谢!
android自定义组合控件
自定义控件(组合控件)源码(WebControl) 自定义控件(组合控件)源码(WebControl) 自定义控件(组合控件)源码(WebControl)
帮助C#学习者组合控件Combox中能够显示TreeView中的内容,有层次的感觉
group工程演示了App开发的组合控件相关知识,包括:标签栏的用法(标签按钮、三种标签栏的实现方式)、导航栏的用法(工具栏、溢出菜单、搜索框、标签布局)、横幅条的用法(自定义指示器、横幅轮播Banner的实现)、...
最简单的组合控件,只有两个按钮,重要的是要提醒下接口的使用
android自定义view之组合控件、重写控件
android 自定义View — 自定义组合控件
ListView&Spinner;组合控件案例对于Android新手来说是一个很好的案例,希望大家自己编写后下载。
手机安全卫士--Android自定义组合控件实现设置功能,界面采用Android自定义组合控件的方式实现,更多详细信息请访问 http://blog.csdn.net/qq_20889581?viewmode=contents 文明的小流氓的博客
自定义组合控件,可以体会一种xml布局的思想,可以提高自定义的知识
”为 EditText 赋值时,可能这个自定义组合控件还未初始化完成,getWidth 得到的值会为0,建立的删除按钮就会不可见。那么为什么不在创建 EditText 的时候创建呢?我本着不浪费资源的原则,就要在我需要的时候才创建...
看着下吧。我觉得挺好用的,那时候做这个控件是为了实现radioButton的功能。
自定义控件 组合控件的demo
Android 组合控件,用自定义方式实现,非简单重写adapter。同时包含了点击事件的响应。
开发了 TreeList组合控件与TreeComboBOX组合控件 两种组合控件的应用,如需要源码 可以与本人联系
自定义控件属性使用及属性详情;组合实现组合控件,奠定完全绘制自定控件前提。