`

android自定义控件1

 
阅读更多
这定义一个控件,包含三个TextView:
控件xml:mywidget.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="match_parent"
	android:layout_height="match_parent">
	<TextView android:text="TextView" android:id="@+id/textView1"
		android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
	<TextView android:text="TextView" android:id="@+id/textView2"
		android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
	<TextView android:text="TextView" android:id="@+id/textView3"
		android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
</LinearLayout>



控件代码:
package com.tcl.testmywidget;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MyWidget extends LinearLayout{
	private View mView;
	/**
	 * 在xml中定义控件的构造函数
	 * @param context
	 * @param attrs
	 */
	public MyWidget(Context context, AttributeSet attrs) {
		super(context, attrs);
		mView = LayoutInflater.from(context).inflate(R.layout.mywidget, this, true);
	}
	/**
	 * 设置第一个textview
	 * @param string
	 */
	public void setText1(String string)
	{
		if(mView!=null)
		{
			TextView textView = (TextView) mView.findViewById(R.id.textView1);
			textView.setText(string);
		}
	}
	/**
	 * 设置第二个textview
	 * @param string
	 */
	public void setText2(String string)
	{
		if(mView!=null)
		{
			TextView textView = (TextView) mView.findViewById(R.id.textView2);
			textView.setText(string);
		}
	}
	public void setText3(String string)
	{
		if(mView!=null)
		{
			TextView textView = (TextView) mView.findViewById(R.id.textView3);
			textView.setText(string);
		}
	}
	/**
	 * 在代码中定义控件的构造函数
	 * @param context
	 */
	public MyWidget(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}

}



测试xml:main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <com.tcl.testmywidget.MyWidget
    android:id="@+id/mywidget"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ></com.tcl.testmywidget.MyWidget>
</LinearLayout>


测试代码:
package com.tcl.testmywidget;

import android.app.Activity;
import android.os.Bundle;

public class TestMyWidgetActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        MyWidget myWidget = (MyWidget) findViewById(R.id.mywidget);
        myWidget.setText1("this is text1");
        myWidget.setText2("this is text2");
        myWidget.setText3("this is text3");
    }
}


效果图:


  • 大小: 11.9 KB
分享到:
评论

相关推荐

    Android自定义控件开发入门与实战.zip

    《Android自定义控件开发入门与实战》这本书深入浅出地讲解了如何在Android平台上创建和使用自定义控件,旨在帮助开发者从基础知识到实战技巧,全方位掌握这一核心技术。 一、自定义控件基础 自定义控件在Android中...

    《Android自定义控件开发入门与实战》_启舰.rar

    Android自定义控件开发入门与实战从自定义基础到实战的讲解。一步步深入。适合有一定Android基础的读者。本压缩包中自带了推荐的pdf阅读器。大家要是喜欢这本文档,推荐去京东,天猫,当当买支持一下默默付出的作者...

    android自定义控件介绍,重写控件

    本文将深入探讨Android自定义控件的概念、重要性以及如何通过重写已有控件来扩展其功能,帮助开发者从初阶迈进高阶。 首先,我们了解什么是自定义控件。在Android系统中,预置了大量的标准控件,如Button、TextView...

    Android自定义控件示例

    这个压缩包“CustomViews”很可能是包含了一系列Android自定义控件的示例项目,旨在帮助开发者理解和学习如何在Android Studio 1.0.2环境下创建和使用自定义控件。 自定义控件通常涉及以下关键知识点: 1. **...

    【Android进阶】(1)用继承和组合方式自定义控件

    在Android开发中,自定义控件是提升应用用户体验和界面设计独特性的重要手段。本教程主要探讨如何通过继承和组合的方式来自定义控件,适用于已经有一定Android基础的开发者进行进阶学习。 首先,我们来理解自定义...

    android自定义控件源码

    本资源"android自定义控件源码"提供了一套详细的自定义控件实现案例,帮助开发者深入理解自定义控件的工作原理和实现方法。配合文章《Android自定义控件深度解析》(文章地址:...

    安卓自定义控件相关-Android自定义控件源码.rar

    这个压缩包"Android自定义控件源码.rar"包含了一些自定义控件的源代码,虽然不能保证每个都可直接运行,但它们提供了丰富的学习资源,帮助开发者理解和实践自定义控件的创建过程。下面将详细探讨Android自定义控件的...

    Android 自定义控件 组合控件

    总结起来,Android自定义组合控件的实现涉及到了对Android UI框架的深入理解和实践,包括继承自定义View或ViewGroup、测量与布局、绘制、事件处理等关键步骤。通过这样的方式,开发者可以构建出功能强大、交互丰富的...

    Android 自定义控件简单Demo

    至此,我们完成了一个简单的Android自定义控件,它能展示图片和文字。然而,自定义控件的能力远不止于此。你可以添加更多的功能,如触摸事件处理、动画效果,甚至动态改变内容。通过深入理解Android的绘图API和布局...

    Android自定义控件开发入门与实战(高清完整书签)电子书

    1 本书从动画、绘图、视图三方面介绍Android自定义控件相关知识,内容系统全面,并配以翔实的案例。 2 Android自定义控件涉及动画和色彩,本书将图片地址制作成二维码,可供读者扫描观看。 3 本书适合初高级水平从业...

    Android自定义控件的demo

    在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。本示例将深入讲解如何基于Android系统实现一个自定义的Button控件,该控件由一个ImageView和一个TextView组成,并添加了标签功能。以下我们将从...

    《Android自定义控件入门到实战》源码2018.10

    《Android自定义控件入门到实战》是一本深入讲解Android平台下自定义控件开发的教程,源码2018.10版提供了一套完整的实践案例,帮助开发者从基础到进阶全面掌握自定义控件的制作技巧。这份资料涵盖了从基本的自定义...

    《Android自定义控件入门到实战》源码

    《Android自定义控件入门到实战》源码提供了一套完整的自定义控件学习资源,涵盖了从基础到高级的各种实例,帮助开发者深入理解和实践Android自定义控件的开发。 自定义控件的核心在于扩展Android内置的View或...

    android 自定义控件实现demo收集 及 框架收集

    在Android开发中,自定义控件和框架的运用是提升应用独特性和性能的关键。下面将对"android 自定义控件实现demo收集 及 框架收集"这一主题进行深入探讨。 首先,自定义控件在Android应用开发中扮演着重要角色。它们...

    自定义控件Demo

    在Android开发中,自定义控件是提升应用界面独特...通过学习和分析`customcontrols`中的代码,开发者可以深入理解Android自定义控件的工作原理,提高自己的Android开发技能,同时也能为今后的项目开发积累宝贵的经验。

    Android 自定义组合控件案例

    1. 重用性:设计通用的接口,使自定义控件具有良好的可复用性。 2. 性能优化:避免在onDraw()中执行耗时操作,使用硬件加速,合理使用View的可见性状态。 3. 属性动画:利用Property Animation系统,实现平滑的动画...

    Android 编写自定义控件实例

    在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。本教程将通过一个具体的实例——saRoundProgressBarDemo,来教你如何编写一个自定义的圆形进度条控件。这个自定义控件不仅提供了基本的进度显示...

    Android自定义控件实现导航条IndicatorView

    在Android应用开发中,自定义控件是提升用户体验和界面个性化的重要手段。本文将深入探讨如何实现一个自定义的...不断学习和实践,将帮助你更好地理解和掌握Android自定义控件的精髓,为你的应用带来更丰富的用户体验。

    Android自定义控件之拖动条

    本文将深入探讨如何创建一个美观的自定义拖动条控件,即"Android自定义控件之拖动条"。我们将讨论以下几个关键知识点: 1. **基础知识**:在Android中,基本的滑动条控件是`SeekBar`,它允许用户通过拖动滑块来选择...

    Android 自定义控件

    本文将深入讲解如何进行Android自定义控件的开发,包括理解View的工作原理、创建自定义控件的几种方式以及如何为自定义控件添加属性。 首先,我们需要理解View的基本结构和工作原理。Android的视图系统采用组合模式...

Global site tag (gtag.js) - Google Analytics