`

组合控件

阅读更多
Android 定制控件有三种方式:
继承其它控件类(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("確定");
			}
		});
	}

}
分享到:
评论

相关推荐

    Android自定义组合控件

    本文将深入探讨如何根据【标题】"Android自定义组合控件"和【描述】中的内容,结合【标签】"android 自定义控件 组合控件 自定义属性",来创建一个自己的自定义组合控件。 首先,我们要明白什么是自定义控件。在...

    android自定义组合控件

    在Android开发中,自定义组合控件是一种常见的需求,它允许开发者根据具体应用的界面设计和功能需求,创建独特且个性化的用户界面组件。本文将深入探讨如何在Android中实现自定义组合控件,以及这一过程中的关键知识...

    最简单的组合控件

    在Android开发中,组合控件(Composite Control)是一种常见的UI设计模式,它允许开发者将多个基本控件(如按钮、文本框等)组合在一起,形成一个新的具有特定功能的控件。这种控件可以帮助我们实现更复杂的用户界面...

    C#Combox与Treeview组合控件

    在C#编程中,组合控件(Combobox)和树形视图(TreeView)是两种常用的用户界面元素,它们在创建交互式、图形化的应用程序时起着关键作用。本篇文章将详细探讨如何将这两个控件结合使用,为用户提供一种具有层次感的...

    自定义组合控件实现

    在IT行业中,自定义组合控件的实现是Android开发中一个重要的知识点,它涉及到UI设计、自定义View以及布局管理等多个领域。自定义控件可以让开发者根据特定需求创建出具有独特功能和外观的用户界面元素,提升应用的...

    android 自定义View — 自定义组合控件

    本文将深入探讨如何在Android中实现自定义组合控件,以提高应用的用户体验和界面设计的灵活性。 首先,理解自定义View的基本概念至关重要。自定义View是通过继承已有的View或 ViewGroup 类,然后重写其方法来实现的...

    自定义控件(组合控件)源码(WebControl)

    自定义控件(组合控件)源码(WebControl) 自定义控件(组合控件)源码(WebControl) 自定义控件(组合控件)源码(WebControl)

    android自定义view之组合控件、重写控件

    本文将深入探讨如何在Android中实现自定义View,包括组合控件和重写现有控件。 首先,我们要理解Android的View体系结构。View是Android UI的基本构建块,它负责绘制和处理用户的交互事件。而ViewGroup则是一种特殊...

    android 自定义组合控件

    在Android开发中,自定义组合控件是一种常见的需求,它允许开发者根据项目需求创建具有独特功能和视觉效果的用户界面组件。这篇博客文章(http://blog.csdn.net/jason_996/article/details/51203215)可能详细介绍了...

    自定义组合控件

    在Android开发中,自定义组合控件是一种常见的需求,它能够帮助我们实现独特且复杂的界面设计,提升用户体验。本文将深入探讨自定义组合控件的概念、实现方式以及它如何体现XML布局思想,同时通过分析提供的文件`...

    组合控件和仿淘宝主页APP

    group工程演示了App开发的组合控件相关知识,包括:标签栏的用法(标签按钮、三种标签栏的实现方式)、导航栏的用法(工具栏、溢出菜单、搜索框、标签布局)、横幅条的用法(自定义指示器、横幅轮播Banner的实现)、...

    Android 自定义控件 组合控件

    组合控件,顾名思义,是指将多个基本控件通过特定的方式组合在一起,形成一个具有新功能或新外观的复合控件。本篇文章将深入探讨如何在Android中实现自定义组合控件,以及如何处理点击事件。 首先,我们从创建一个...

    自定义控件组合控件

    在IT行业中,自定义控件和组合控件是软件开发中的重要概念,特别是在GUI(图形用户界面)设计中。自定义控件允许开发者根据特定需求创建具有独特功能和外观的UI元素,而组合控件则是将多个基础控件集成在一起,以...

    手机安全卫士--Android自定义组合控件实现设置功能

    手机安全卫士--Android自定义组合控件实现设置功能,界面采用Android自定义组合控件的方式实现,更多详细信息请访问 http://blog.csdn.net/qq_20889581?viewmode=contents 文明的小流氓的博客

    Android自定义控件之组合控件学习笔记分享

    我们来讲一下自定义组合控件,相信大家也接触过自定义组合控件吧,话不多说,直接干(哈~哈~): 大家看到这个觉得这不是很简单的吗,这不就是写个布局文件就搞定嘛,没错,确实直接上布局就行,不过,我只是用这个...

    C#.net 2008组合控件用法

    在C#.NET 2008中,组合控件(Composite Control)是一种强大的设计工具,它允许开发者将多个Windows Forms控件或者自定义控件组合在一起,形成一个新的、功能更丰富的用户界面元素。这种控件的创建是通过继承System....

    C#自定义翻页组合控件

    "C#自定义翻页组合控件"是一个专为提升用户体验而设计的组件,它允许用户在大量数据中进行便捷的分页浏览。下面我们将深入探讨这个自定义翻页控件的设计理念、实现方式以及其关键功能。 1. **设计理念** 自定义...

Global site tag (gtag.js) - Google Analytics