1. 声明declare-styleable属性在attrs.xml文件里面
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<declare-styleable name="MyView">
<attr name="color" format="color"/>
<attr name="size" format="dimension" />
<attr name="Oriental">
<enum name="Horizontal" value="1"></enum>
<enum name="Vertical" value="0"></enum>
</attr>
</declare-styleable>
</resources>
2.在布局文件里面添加属性声明: xmlns:test="http://schemas.android.com/apk/res/com.yuhua.test" 其中 test是控件属性的前缀名称,而com.yuhua.test是工程包名
这里还有另外一种添加属性声明的方式:
xmlns:test="http://schemas.android.com/apk/res-auto"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:test="http://schemas.android.com/apk/res/com.yuhua.test"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.yuhua.test.MyTextView
android:id="@+id/tv_test"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
test:color="#ff0000"
test:size="23sp"
test:Oriental="Horizontal"
android:text="@string/hello" />
</LinearLayout>
3.在自定义组件的java代码中获取属性,并进行逻辑处理
public class MyTextView extends TextView {
private static final String TAG = "MyTextView";
public MyTextView(Context context) {
super(context);
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray typeArray = context.obtainStyledAttributes(attrs, R.styleable.MyView);
int color = typeArray.getColor(R.styleable.MyView_color, Color.BLACK);
float size = typeArray.getDimension(R.styleable.MyView_size, 12.0f);
int oriental = typeArray.getInt(R.styleable.MyView_Oriental, 0);
Log.i(TAG, "===the defOriental:" + oriental);
this.setTextColor(color);
this.setTextSize(size);
typeArray.recycle();
}
}
分享到:
相关推荐
在Android开发中,自定义组件是一项重要的技能,它允许开发者根据特定需求创建具有独特功能和外观的视图。本文将深入探讨如何在Android中自定义组件,并基于Android API Demo进行讲解,帮助你理解和掌握这一核心知识...
在Android开发中,自定义组件是一项重要的技能,它允许开发者根据特定需求创建具有独特功能和外观的视图。本教程将通过一个简单的“TestOurselfWidget”实例来讲解如何实现自定义组件。自定义组件可以增强应用的用户...
在项目中使用这个自定义组件时,只需在XML布局文件中声明并引用自定义属性: ```xml android:id="@+id/custom_time_picker" android:layout_width="match_parent" android:layout_height="wrap_content" app:...
通过分析并实践这个"android自定义组件demo",开发者可以掌握自定义组件的创建流程,理解Android绘图机制,以及如何通过属性和事件处理增强组件功能。这些知识对于构建高效、独特的Android应用程序至关重要。
本文将深入探讨Android自定义组件的开发过程,旨在帮助开发者更好地理解和实践这一关键技能。 首先,理解Android组件的基本概念至关重要。Android组件是应用程序的基本构建块,主要包括Activity、Service、...
本篇文章将深入探讨如何在Android中创建并使用自定义组件属性,以提高代码的可复用性和可维护性。 首先,我们来看自定义组件属性的原理。Android系统使用XML布局文件来定义界面元素,而这些元素的属性主要来自于...
Android自定义组件的开发是Android应用开发中的一个重要部分,它涉及到自定义View和ViewGroup的创建,以及对canvas和paint的深入理解和运用。自定义组件能够满足开发者对于UI设计的独特需求,提升用户体验,同时也是...
在“android自定义组件动画基础班”中,我们可能将重点放在如何使用属性动画和补间动画来增强自定义组件的交互体验。例如,`AnimationButton`可能是一个带有自定义点击动画的按钮。我们可以使用属性动画在用户按下...
在Android应用开发中,自定义组件是提升用户体验和实现独特设计的关键技术。Android绘图与自定义组件的结合,能够让我们创造出独具特色的交互效果和视觉表现。以下将详细阐述这两个重要概念及其应用。 1. Android...
在Android开发中,自定义组件是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的视图。本示例——"Android:自定义组件绘制饼状统计图",旨在教你如何构建一个能够显示数据比例的饼状图。下面将详细...
综上所述,Android自定义组件是提升应用体验和满足个性化需求的重要手段。通过熟练掌握自定义组件的创建方法和技巧,开发者能够更好地应对各种复杂场景,创造出独具特色的用户界面。在实际开发中,结合属性动画、...
下面将详细介绍Android自定义组件的相关知识。 首先,我们要了解自定义组件的基本概念。在Android中,组件通常指的是继承自View或ViewGroup的类。View是Android UI系统中最基本的元素,如按钮、文本框等,而...
以下是对Android自定义组件开发的详细解析: 一、自定义组件基础 1. 创建自定义组件:自定义组件通常继承自Android内置的View或ViewGroup类。通过重写构造函数、onDraw()、onMeasure()和onLayout()等关键方法,可以...
在Android开发中,自定义组件是一项重要的技能,它允许开发者根据需求创建独特的用户界面元素,提升应用的用户体验。本篇文章将深入探讨如何在Android中自定义一个基于逐帧动画的ProgressBar组件,即自定义loading...
在Android开发中,自定义组件是一项重要的技能,它允许开发者根据特定需求打造独特的用户界面。本文将深入探讨如何实现一个自定义的刷新控件,以此为应用增添个性化和交互性的功能。我们将基于提供的链接...
在Android开发中,自定义组件是一项重要的技能,它允许开发者根据特定需求创建具有独特功能和视觉效果的视图。本文将深入探讨如何利用Android的Canvas API来实现一个自定义组件,用于绘制柱状统计图。柱状统计图是一...
在Android开发中,自定义属性是一项非常重要的技能,它能够帮助开发者实现个性化和高度定制的UI组件。本篇文章将深入探讨三种不同的自定义属性方法,并结合相关博客资源,以`Custom_TextView`为例进行详细解释。 一...
在Android开发中,自定义Attr属性是提升...在CustomAttr这个项目中,你可以找到具体的实践案例,通过阅读源码和运行示例,加深对Android自定义Attr属性的理解。实践是检验真理的唯一标准,动手尝试是学习的最佳途径。
在Android开发中,自定义属性是一种非常常见的技术,它允许开发者扩展系统提供的组件特性,创建具有独特功能和外观的自定义视图或者组件。通过自定义属性,开发者可以更好地控制UI设计,提升应用的用户体验。以下是...