`

Android自定义属性

阅读更多
这里我自定义一个View来说明自定义属性的用法.

Part 1.自定义一个View:


public class MyView extends View {
    public MyView(Context context) {
        super(context);
    }

    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);
        TypedArray typedArray = context.obtainStyledAttributes(attrs,R.styleable.MyView);
        Log.d("xyz","name:" + typedArray.getString(R.styleable.MyView_gylName) + "age:" + typedArray.getString(R.styleable.MyView_gylAge));
        //MyView_gylName和MyView_gylAge是自定义属性,看官莫急
        typedArray.recycle();
    }
}


这个View什么功能都没,取得自定义的两个属性的值并在日志打印出来.
在这里需要注意两点:
1.public final TypedArray obtainStyledAttributes (AttributeSet set, int[] attrs),这里第二个参数R.styleable.MyView,红字部分是自定义属性中declare-styleable标签的name属性的值.
2.可以用AttributeSet对象也就是attrs来取自定义属性的值,但是比较麻烦,推荐用TypedArray.


Part 2.在values下建attr.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="MyView">
        <attr name="gylName" format="string"/>
        <attr name="gylAge" format="integer"/>
    </declare-styleable>
</resources>


declare-styleable是可以不要的,就是说可以直接在resource标签内写attr标签,但是,还是推荐写在declare-styleable里...

Part 3.布局页

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ray="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <com.learn.gyl.xutilssample.MyView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        ray:gylAge="18"
        ray:gylName="gyl"/>
</LinearLayout>


注意命名空间:xmlns:ray="http://schemas.android.com/apk/res-auto"
红字部分就是ray:gylAge="18"自定义控件里的部分.


运行结果:
xyz: name:gylage:18





分享到:
评论

相关推荐

    Android 自定义属性及其引用

    本文将深入探讨Android自定义属性的创建、使用以及它们在实际项目中的应用。 首先,我们来了解自定义属性的定义。在Android中,自定义属性通常在资源XML文件的`&lt;declare-styleable&gt;`元素中定义。例如,假设我们要为...

    Android 自定义属性动画Demo

    本资源提供的"Android 自定义属性动画Demo"是为了帮助开发者更好地理解和应用这一技术。 属性动画系统在API 11(Android 3.0 Honeycomb)及更高版本中引入,它可以改变对象的属性并实时渲染这些变化,创建出平滑...

    android自定义属性(三种方法dome)

    在Android开发中,自定义属性是一项非常重要的技能,它能够帮助开发者实现个性化和高度定制的UI组件。本篇文章将深入探讨三种不同的自定义属性方法,并结合相关博客资源,以`Custom_TextView`为例进行详细解释。 一...

    Android自定义属性.txt

    Android自定义属性

    AttrTest android自定义属性

    在Android开发中,自定义属性(Custom Attributes)是提升应用可复用性和灵活...通过学习和实践这个简单的实例,你可以掌握Android自定义属性的基本用法,从而更好地定制你的应用程序,提高代码的可维护性和用户体验。

    Android自定义属性深入理解

    仿照系统TextView的自定义属性,以及讲解obtainStyledAttributes各个参数的用处,详情请见博客https://blog.csdn.net/qq_29951983/article/details/80219746

    android自定义属性控件

    以上内容涵盖了Android自定义属性控件的基本实现,包括自定义属性、自定义控件的绘制与交互,以及简单的Tab控件封装。通过这些技术,开发者可以构建出功能强大且具有个性化风格的Android应用。在实际项目中,还需要...

    Android自定义属性实现带边框效果的TextView

    Android自定义属性的使用就是解决此类问题的一种有效方法。本篇将深入探讨如何通过自定义属性来实现一个带边框效果的TextView。 首先,自定义属性是Android系统提供的一种扩展机制,允许开发者在组件中添加自己的...

    Android自定义属性百分比布局

    "Android自定义属性百分比布局"就是一种这样的技术,它允许我们在布局中使用子控件相对于父容器的百分比大小,从而实现响应式设计。下面我们将详细探讨这一主题。 首先,`PercentLayout`是Android支持的一种布局...

    android 自定义属性实现 ImageView 透明度渐变效果

    在Android开发中,自定义属性是提升应用独特性和用户体验的重要手段。本教程将详细讲解如何通过自定义属性来实现ImageView的透明度渐变效果。首先,我们从自定义属性的创建开始。 一、创建自定义属性 在Android项目...

    android 自定义view及自定义属性

    在Android开发中,自定义View和自定义属性是提升应用个性化和功能扩展性的重要手段。本文将深入探讨这两个核心概念,以及如何在实际项目中应用它们。 ### 自定义View 自定义View允许开发者创建自己的视图组件,以...

    自定义属性和反射的例子

    在.NET框架中,自定义属性(Custom Attributes)是一种元数据,可以附加到代码的各种元素上,如类、方法、字段等,提供额外的信息用于运行时的处理或代码分析。自定义属性增强了代码的可扩展性和灵活性,使得我们...

    android 重写控件添加自定义属性

    在Android开发中,有时我们需要对系统提供的控件进行扩展,以满足特定的需求,这就涉及到控件的重写和自定义属性的添加。本篇将详细讲解如何在Android中实现这一功能。 首先,我们要理解Android控件重写的基本原理...

    android 自定义控件 自定义属性详细介绍

    通过在该文件中声明自定义属性,我们可以为控件添加新的配置选项。以下是几种常见的属性类型及其用法: 1. **reference**: 这种类型用于引用已存在的资源ID,如颜色、图片等。例如: ```xml ``` 2. **color*...

    Android自定义属性 format的深入解析

    (1)属性定义: 代码如下: &lt;attr xss=removed xss=removed&gt;&lt;/declare&gt;(2)属性使用: 代码如下: &lt;ImageView xss=removed xss=removed xss=removed&gt;2. color:颜色值。(1)属性定义: 代码如下:&lt;decl

    Android 自定义View 之 自定义属性 demo 修改版

    本篇文章将深入探讨如何在Android中进行自定义View,并以"自定义属性demo修改版"为例,讲解如何添加和使用自定义属性。 首先,自定义属性是在Android资源文件中定义的,通常在res/values/attrs.xml中。在这个示例中...

    Android自定义Attr属性

    以下将详细介绍Android自定义Attr属性的使用过程及其背后的原理。 首先,自定义Attr涉及到的主要步骤包括:定义属性、在资源文件中声明属性、解析属性值以及在代码中使用属性。让我们逐一探讨这些步骤: 1. **定义...

    Android自定义菜单属性DEMO

    本DEMO,"Android自定义菜单属性DEMO",旨在教你如何为Android应用创建一个带有自定义属性的菜单按钮。这个教程是基于CSDN博主janice0529的一篇博客文章,你可以通过提供的链接获取详细的源码解析。 首先,我们要...

    Android自定义日期选择器源码

    博客文章“Android自定义日期选择器源码”可能详细介绍了以下关键点: 1. **自定义View组件**:创建一个新的`View`类,继承自`ViewGroup`,在这个类中,我们需要绘制日期选择器的所有元素,包括背景、网格线、日期...

Global site tag (gtag.js) - Google Analytics