`

自定义控件

阅读更多
1、在res/values 文件下定义一个attrs.xml 文件.代码如下:
<?xml version="1.0" encoding="utf-8"?>  
<resources>  
    <declare-styleable name="MyView">  
        <attr name="textColor" format="color" />  
        <attr name="textSize" format="dimension" />  
    </declare-styleable>  
</resources>

注意:在xml中,可能不会出现提示,所以需要记住书写格式
属性attr中format的值有一下几种:
"reference" //引用  ,表示用@drawable/    # ffffff等,所以基本上都需要加上这个
"color" //颜色
"boolean" //布尔值
"dimension" //尺寸值
"float" //浮点值
"integer" //整型值
"string" //字符串
"fraction" //百分数,比如200%
可以同时加多个,如:format = "reference|color"

2、创建一个类MyView 集成LinearLayout,必须集成public MyView(Context context,AttributeSet attrs)方法
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.mys); 
View titleView = LayoutInflater.from(context).inflate(R.layout.head, null);
addView(titleView, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
mIcon = (ImageView)titleView.findViewById(R.id.icon);
mTitle = (TextView)titleView.findViewById(R.id.title);
mIcon.setBackgroundResource(array.getResourceId(R.styleable.mys_icon, -1));
mTitle.setText(array.getString(R.styleable.mys_title));

获取里面属性用 名字_ 属性 连接起来就可以.TypedArray 通常最后调用 .recycle() 方法,为了保持以后使用该属性一致性!

3、在布局文件中使用该控件:
首先一定要加入命名空间:
xmlns:test ="http://schemas.android.com/apk/res/com.android.tutor"
test是自定义的前缀,后面com.android.tutor是项目的包名
如:
<com.example.test.MyButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        test:icon="@drawable/nearby_4"
        test:title="this is title"
       />
分享到:
评论

相关推荐

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

    labveiw自定义控件、以及一些各种布尔控件.zip

    标题“labview自定义控件、以及一些各种布尔控件.zip”表明这是一个包含多个自定义控件和布尔类型控件的压缩包资源。这些控件可能包括按钮、开关等交互元素,且特别强调了布尔类型的控件,这通常指的是能开启或关闭...

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

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

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

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

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

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

    VisionPro如何编写自定义控件

    为了满足特定需求或扩展功能,有时我们需要编写自定义控件。以下将详细介绍如何在VisionPro中创建自定义控件。 1. **创建项目**:首先,你需要在Visual Studio环境中创建一个新的.NET类库项目。在这个例子中,项目...

Global site tag (gtag.js) - Google Analytics