source code:
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MyView extends LinearLayout {
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray typedArray=context.obtainStyledAttributes(attrs, R.styleable.MyViewText);
TextView textView=new TextView(context);
int count=typedArray.getIndexCount();
for (int i = 0; i < count; i++) {
int attr=typedArray.getIndex(i);
switch (attr) {
case R.styleable.MyViewText_Text:
int resource=typedArray.getResourceId(R.styleable.MyViewText_Text, 0);
System.out.println(resource);
if(resource>0){//通过引用设值方式
textView.setText(typedArray.getResources().getText(resource));
}else{//通过直接设值方式
textView.setText(typedArray.getString(R.styleable.MyViewText_Text));
}
break;
default:
break;
}
}
addView(textView);
System.out.println("getChildCount:"+getChildCount());
System.out.println(getChildAt(0));
setBackgroundColor(0xaa00aa);
typedArray.recycle();
}
}
layout code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res/com.zhonghong.tsp.share"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<view class="com.demo.view.MyView" android:layout_width="wrap_content" android:layout_height="wrap_content" app:Text="@string/app_name">
<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher"/>
</view>
<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher"/>
</RelativeLayout>
attrs.xml code
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MyViewText">
<!--同时兼容两种设值方式-->
<attr name="Text" format="reference|string"></attr>
</declare-styleable>
</resources>
相关推荐
本文将深入探讨Android自定义组件的开发过程,旨在帮助开发者更好地理解和实践这一关键技能。 首先,理解Android组件的基本概念至关重要。Android组件是应用程序的基本构建块,主要包括Activity、Service、...
【Android自定义组件开发详解】 Android自定义组件的开发是Android应用开发中的一个重要部分,它涉及到自定义View和ViewGroup的创建,以及对canvas和paint的深入理解和运用。自定义组件能够满足开发者对于UI设计的...
《Android自定义组件开发详解》一书的作者李赞红在序言中表达了对Android开发教学的热情和对学员成长的关切。他提到,尽管市场上有许多Android开发相关的书籍,但大多数要么偏重理论、要么实践指导不足,或者只是...
本教程将带你深入理解“android自定义组件动画基础班”的核心概念。 首先,我们要了解在Android中创建自定义组件的基本步骤。这通常包括: 1. **创建自定义View类**:这是自定义组件的第一步,你需要继承已有的...
Android自定义组件开发是一项高级技术,它允许开发者创建具有特定功能的UI组件,以满足应用程序的特殊需求。在深入了解自定义组件的开发之前,需要掌握一些基础知识,比如Java基础、面向对象编程(OOP)以及Android...
综上所述,Android自定义组件是提升应用体验和满足个性化需求的重要手段。通过熟练掌握自定义组件的创建方法和技巧,开发者能够更好地应对各种复杂场景,创造出独具特色的用户界面。在实际开发中,结合属性动画、...
在Android开发中,自定义组件是一项重要的技能,它允许开发者根据特定需求创建具有独特功能和外观的视图。本教程将通过一个简单的“TestOurselfWidget”实例来讲解如何实现自定义组件。自定义组件可以增强应用的用户...
这个"android自定义组件demo"实例提供了三种自定义组件的示例,是学习和理解Android自定义组件的一个宝贵资源。下面我们将深入探讨这三个自定义组件的关键知识点,并提供相关的实践指导。 1. **自定义View的基本...
以下是对Android自定义组件开发的详细解析: 一、自定义组件基础 1. 创建自定义组件:自定义组件通常继承自Android内置的View或ViewGroup类。通过重写构造函数、onDraw()、onMeasure()和onLayout()等关键方法,可以...
下面将详细介绍Android自定义组件的相关知识。 首先,我们要了解自定义组件的基本概念。在Android中,组件通常指的是继承自View或ViewGroup的类。View是Android UI系统中最基本的元素,如按钮、文本框等,而...
在Android开发中,自定义组件是一项重要的技能,它允许开发者根据特定需求打造独特的用户界面。本文将深入探讨如何实现一个自定义的刷新控件,以此为应用增添个性化和交互性的功能。我们将基于提供的链接...
在Android开发中,自定义组件是提升应用独特性和用户体验的重要手段...在"android自定义组件(二)"的博客中,作者可能详细讲解了上述某个或多个方面,提供了具体的代码示例和实战经验,对深入理解自定义组件有极大帮助。
本篇文章将详细探讨如何实现一个Android自定义组件——卫星菜单(Satellite Menu),也称为ArcMenu。卫星菜单是一种以中心按钮为触发点,围绕中心点展开的一组按钮布局,常用于导航或展示附加功能。 首先,我们定义...
通过深入研究这份文档,开发者将能够掌握创建高效、功能丰富的Android自定义组件的技巧。 总的来说,自定义组件是Android开发中的一个重要课题,它允许开发者充分发挥创造力,打造独一无二的应用界面。通过不断实践...
本文档详细讲解了Android自定义组件与特效,清晰易懂。
本文将深入探讨自定义组件的实现原理和步骤,以“android自定义组件(三)”为主题,结合博客http://blog.csdn.net/ethan_xue/article/details/7314907中的内容进行解析。 首先,自定义组件的基础是理解Android的View...
《Android自定义组件开发详解》
在Android开发中,自定义组件是一项重要的技能,它允许开发者根据需求定制独特的用户界面和交互体验。本主题将深入探讨如何实现一个精美的、内容和样式可扩展的日历组件。这个自定义日历控件可以帮助你创建具有高度...