这里我自定义一个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中,自定义属性通常在资源XML文件的`<declare-styleable>`元素中定义。例如,假设我们要为...
本资源提供的"Android 自定义属性动画Demo"是为了帮助开发者更好地理解和应用这一技术。 属性动画系统在API 11(Android 3.0 Honeycomb)及更高版本中引入,它可以改变对象的属性并实时渲染这些变化,创建出平滑...
在Android开发中,自定义属性是一项非常重要的技能,它能够帮助开发者实现个性化和高度定制的UI组件。本篇文章将深入探讨三种不同的自定义属性方法,并结合相关博客资源,以`Custom_TextView`为例进行详细解释。 一...
Android自定义属性
在Android开发中,自定义属性(Custom Attributes)是提升应用可复用性和灵活...通过学习和实践这个简单的实例,你可以掌握Android自定义属性的基本用法,从而更好地定制你的应用程序,提高代码的可维护性和用户体验。
仿照系统TextView的自定义属性,以及讲解obtainStyledAttributes各个参数的用处,详情请见博客https://blog.csdn.net/qq_29951983/article/details/80219746
以上内容涵盖了Android自定义属性控件的基本实现,包括自定义属性、自定义控件的绘制与交互,以及简单的Tab控件封装。通过这些技术,开发者可以构建出功能强大且具有个性化风格的Android应用。在实际项目中,还需要...
Android自定义属性的使用就是解决此类问题的一种有效方法。本篇将深入探讨如何通过自定义属性来实现一个带边框效果的TextView。 首先,自定义属性是Android系统提供的一种扩展机制,允许开发者在组件中添加自己的...
"Android自定义属性百分比布局"就是一种这样的技术,它允许我们在布局中使用子控件相对于父容器的百分比大小,从而实现响应式设计。下面我们将详细探讨这一主题。 首先,`PercentLayout`是Android支持的一种布局...
在Android开发中,自定义属性是提升应用独特性和用户体验的重要手段。本教程将详细讲解如何通过自定义属性来实现ImageView的透明度渐变效果。首先,我们从自定义属性的创建开始。 一、创建自定义属性 在Android项目...
在Android开发中,自定义View和自定义属性是提升应用个性化和功能扩展性的重要手段。本文将深入探讨这两个核心概念,以及如何在实际项目中应用它们。 ### 自定义View 自定义View允许开发者创建自己的视图组件,以...
在.NET框架中,自定义属性(Custom Attributes)是一种元数据,可以附加到代码的各种元素上,如类、方法、字段等,提供额外的信息用于运行时的处理或代码分析。自定义属性增强了代码的可扩展性和灵活性,使得我们...
在Android开发中,有时我们需要对系统提供的控件进行扩展,以满足特定的需求,这就涉及到控件的重写和自定义属性的添加。本篇将详细讲解如何在Android中实现这一功能。 首先,我们要理解Android控件重写的基本原理...
通过在该文件中声明自定义属性,我们可以为控件添加新的配置选项。以下是几种常见的属性类型及其用法: 1. **reference**: 这种类型用于引用已存在的资源ID,如颜色、图片等。例如: ```xml ``` 2. **color*...
(1)属性定义: 代码如下: <attr xss=removed xss=removed></declare>(2)属性使用: 代码如下: <ImageView xss=removed xss=removed xss=removed>2. color:颜色值。(1)属性定义: 代码如下:<decl
本篇文章将深入探讨如何在Android中进行自定义View,并以"自定义属性demo修改版"为例,讲解如何添加和使用自定义属性。 首先,自定义属性是在Android资源文件中定义的,通常在res/values/attrs.xml中。在这个示例中...
以下将详细介绍Android自定义Attr属性的使用过程及其背后的原理。 首先,自定义Attr涉及到的主要步骤包括:定义属性、在资源文件中声明属性、解析属性值以及在代码中使用属性。让我们逐一探讨这些步骤: 1. **定义...
本DEMO,"Android自定义菜单属性DEMO",旨在教你如何为Android应用创建一个带有自定义属性的菜单按钮。这个教程是基于CSDN博主janice0529的一篇博客文章,你可以通过提供的链接获取详细的源码解析。 首先,我们要...
博客文章“Android自定义日期选择器源码”可能详细介绍了以下关键点: 1. **自定义View组件**:创建一个新的`View`类,继承自`ViewGroup`,在这个类中,我们需要绘制日期选择器的所有元素,包括背景、网格线、日期...