`
rayln
  • 浏览: 424473 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

自定义控件

 
阅读更多
请看例子:

定义一个/res/layout/control.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/icon"  
    android:paddingTop="5dip"  
    android:paddingBottom="5dip"  
    android:paddingLeft="5dip"  
    android:layout_gravity="center_vertical"  
    />
<TextView  
    android:layout_height="wrap_content"  
    android:text="确定"  
    android:textColor="#000000"  
    android:id="@+id/tv"  
    android:layout_marginLeft="8dip" android:layout_marginRight="10dip" 
    android:layout_gravity="center_vertical" android:layout_width="wrap_content"/>  
</LinearLayout>



自定义控件的类ImageBt.java
package com.notice.ib;  
  
import com.control.R;

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 ImageBt extends LinearLayout {  
  
    private ImageView iv;  
    private TextView  tv;  
  
    public ImageBt(Context context) {  
        this(context, null);  
    }  
  
    public ImageBt(Context context, AttributeSet attrs) {  
        super(context, attrs);  
        // 导入布局  
        LayoutInflater.from(context).inflate(R.layout.control, this, true);  
        iv = (ImageView) findViewById(R.id.iv);  
        tv = (TextView) findViewById(R.id.tv);  
    }  
  
    /** 
     * 设置图片资源 
     */  
    public void setImageResource(int resId) {  
        iv.setImageResource(resId);  
    }  
  
    /** 
     * 设置显示的文字 
     */  
    public void setTextViewText(String text) {  
        tv.setText(text);  
    }  
  
} 



main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
	<RelativeLayout  
         android:orientation="horizontal"  
         android:layout_width="fill_parent"  
         android:layout_height="wrap_content"  
         android:layout_gravity="center_vertical"  
         >  
         <com.notice.ib.ImageBt  
             android:id="@+id/bt_confirm"  
             android:layout_height="wrap_content"  
             android:layout_width="wrap_content"  
             android:layout_alignParentBottom="true"  
             android:background="#FFFFFF"
             android:clickable="true"  
             android:focusable="true"  
             />  
         <com.notice.ib.ImageBt  
             android:id="@+id/bt_cancel"  
             android:layout_toRightOf="@id/bt_confirm"  
             android:layout_height="wrap_content"  
             android:layout_width="wrap_content"  
             android:layout_alignParentBottom="true"  
             android:background="#FFFFFF"  
             android:clickable="true"  
             android:focusable="true"  
             android:layout_marginLeft="10px"
            />  
	</RelativeLayout>
</LinearLayout>


主Activity类
package com.control;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;

import com.notice.ib.ImageBt;

public class ControlActivity extends Activity {
	private ImageBt ib1;  
    private ImageBt ib2;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        ib1 = (ImageBt) findViewById(R.id.bt_confirm);  
        ib2 = (ImageBt) findViewById(R.id.bt_cancel);  
  
        ib1.setTextViewText("确定");  
        ib1.setImageResource(R.drawable.icon);  
        ib2.setTextViewText("取消");  
        ib2.setImageResource(R.drawable.icon);  
  
        ib1.setOnClickListener(new OnClickListener() {  
  
            @Override  
            public void onClick(View v) {  
                    //在这里可以实现点击事件  
            }  
        });
    }
}
分享到:
评论

相关推荐

    C#自定义控件库

    "C#自定义控件库"是指使用C#语言编写的、由开发者自定义的控件集合,这些控件可以扩展.NET Framework的标准控件集,为用户提供更丰富的界面元素和功能。自定义控件是软件开发中的一个重要环节,特别是在UI设计和用户...

    QT添加自定义控件

    ### QT添加自定义控件 #### 一、引言 在使用QT进行界面设计时,开发者往往会遇到标准控件库无法完全满足特定需求的情况。此时,实现自定义控件成为解决问题的有效途径之一。本文旨在详细介绍如何在QT环境中快速...

    vb6.0用户控件自定义控件

    在VB6.0中,用户控件(User Control)和自定义控件(Custom Control)是两种非常重要的组件开发技术,它们允许开发者扩展Visual Basic的标准控件库,以满足特定项目的需求。通过创建用户控件和自定义控件,我们可以...

    labview自定义控件.rar

    在"labview自定义控件.rar"这个压缩包中,我们关注的是LabVIEW中的一个重要特性——自定义控件。 自定义控件是LabVIEW编程中的一个重要元素,它允许用户根据需求创建具有特定功能或视觉效果的独特界面组件。这不仅...

    C#自定义控件.rar

    本资料包“C#自定义控件.rar”显然是关于如何在C#环境中创建和使用自定义控件的教程或示例代码。 自定义控件的创建通常分为几个步骤: 1. **基础类选择**:首先,你需要选择一个基础类来继承。这可以是系统提供的...

    c#自定义控件实例大全,.NET自定义控件实例大全,WINFORM自定义控件实例大全

    "C#自定义控件实例大全,.NET自定义控件实例大全,WINFORM自定义控件实例大全"这个主题涵盖了创建、定制和使用自定义控件的全过程,旨在帮助开发者扩展.NET Framework的基础控件功能。 一、自定义控件的概念 自定义...

    C# 自定义控件的属性和添加事件

    在C#编程中,自定义控件是一种强大的工具,它允许开发者根据特定需求扩展或定制标准控件的功能。本文将深入探讨如何创建自定义控件、添加属性以及为它们添加事件,以提升软件界面的交互性和用户体验。 首先,我们要...

    ASP.NET用户控件和自定义控件

    在ASP.NET中,用户控件和自定义控件是两种重要的组件,它们扩展了.NET Framework的内置控件,帮助开发者创建具有特定功能和交互性的界面元素。 **用户控件(User Control)** 用户控件是ASP.NET中的基本自定义UI元素...

    Android自定义控件开发入门与实战.zip

    在Android应用开发中,自定义控件是提升用户体验和实现独特设计的重要手段。《Android自定义控件开发入门与实战》这本书深入浅出地讲解了如何在Android平台上创建和使用自定义控件,旨在帮助开发者从基础知识到实战...

    自定义控件C# TextBox

    自定义控件是开发人员扩展系统默认功能的一种手段,能够满足特定需求或提供独特的用户体验。在这个案例中,我们将讨论如何创建一个自定义的TextBox控件,该控件仅允许用户输入数字,通过使用正则表达式来屏蔽非数字...

    C#自定义控件合集-SunnyUI.rar

    本文将深入探讨“C#自定义控件合集-SunnyUI.rar”这个压缩包中的知识点,包括自定义控件的创建、Button、进度条、Box(可能指的是对话框)以及提示框的实现和外观设计。 首先,自定义控件在C# Winform开发中扮演着...

    Qt自定义控件库.rar

    Qt自定义控件库是一个集合了多种自定义控件资源的压缩包,主要针对Qt开发平台,用于丰富和扩展Qt应用程序的用户界面。Qt是一个跨平台的C++图形用户界面应用程序开发框架,广泛应用于桌面、移动设备以及嵌入式系统的...

    用户自定义控件用户自定义控件用户自定义控件

    用户自定义控件,用户自定义控件,用户自定义控件,用户自定义控件,用户自定义控件,用户自定义控件,用户自定义控件,用户自定义控件,用户自定义控件用户自定义控件,用户自定义控件,用户自定义控件,用户自定义...

    java swt自定义控件

    本文将深入探讨在Java中使用SWT进行自定义控件的开发。 ### 1. SWT概述 SWT是一个开源的Java库,它的目标是提供与原生GUI库(如Windows的Win32 API,Mac OS的Cocoa,Linux的GTK+)类似的性能和功能。SWT使用JNI...

    11自定义控件_C++_自定义控件_

    在C++编程中,自定义控件是一种非常重要的技术,它允许开发者根据需求创建具有特殊功能或特定外观的用户界面元素。自定义控件能够帮助我们实现标准库中没有的功能,提升应用程序的用户体验和交互性。本文将深入探讨...

    C#自定义控件之-winform美化

    本文将深入探讨如何在WinForms中进行自定义控件的创建和窗体美化,以解决系统默认控件外观不尽如人意的问题。 一、自定义控件的创建 1. 继承现有控件:你可以通过继承System.Windows.Forms中的控件类,如Button、...

    Qt精美自定义控件 十套demo源码

    在本文中,我们将深入探讨基于Qt框架的自定义控件设计。Qt是一个强大的跨平台应用程序开发框架,广泛用于创建桌面、移动以及嵌入式系统的用户界面。通过自定义控件,开发者可以创建具有独特视觉效果和功能的组件,以...

    总结的winform自定义控件开发教程

    winform自定义控件开发教程 winform自定义控件开发是指使用C#语言在winform平台上开发自定义控件的过程。自定义控件是winform应用程序中最基本的组件之一,它们可以提供丰富的交互体验和个性化的界面设计。开发...

    vb.net 自定义控件(含自定义对话框设置属性) 实例

    vb.net 自定义控件 自定义属性 UITypeEditor UI 类型编辑器 实例 提供一个示例 UITypeEditor,它使用 IWindowsFormsEditorService 显示用于用户输入的 Form。 IWindowsFormsEditorService 只能通过 PropertyGrid ...

Global site tag (gtag.js) - Google Analytics