`

android复合控件

 
阅读更多
自定义组合控件,用来复用
其一:
首先看布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_below="@+id/iv"
        android:text="@string/bless" />


</RelativeLayout>


一张图片,一行文字。
然后看定义的控件:
public class ImageBtn extends LinearLayout {

	private ImageView iv;
	private TextView tv;
	private LayoutInflater mInflater;

	public ImageBtn(Context context) {
		this(context, null);
	}

	public ImageBtn(Context context, AttributeSet attrs) {
		super(context, attrs);
		mInflater = (LayoutInflater) context
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		mInflater.inflate(R.layout.birth_cloud_item, this, true);
	}

	protected void onFinishInflate() {
		super.onFinishInflate();
		iv = (ImageView) findViewById(R.id.iv);
		tv = (TextView) findViewById(R.id.tv);
	}

	public void setImageResource(int resId) {
		iv.setImageResource(resId);
	}

	public void setText(int resId) {
		tv.setText(resId);
	}

}


好了,这样你就可以使用了。
其二:
自定义一个EditText
首先在drawable定义一个selector,命名为selector_edittext_bg:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/edit_pressed" android:state_focused="true"/>
    <item android:drawable="@drawable/edit_normal"/>

</selector>


然后写个自定义控件的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/tv"
        android:textColor="#987787"
        android:layout_width="100dip"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:text="@string/phone"
        />
   <EditText android:id="@+id/et"
       android:layout_width="180dip"
       android:background="@drawable/selector_edittext_bg"
       android:layout_height="wrap_content"/>

</LinearLayout>

这个就是EditText前面有个说明文字;
接下来是定义一个控件了。
public class MyEditText extends LinearLayout {

	private EditText et;
	private TextView tv;
	private LayoutInflater mInflater;

	public MyEditText(Context context) {
		this(context, null);
	}

	public MyEditText(Context context, AttributeSet attrs) {
		super(context, attrs);
		mInflater = (LayoutInflater) context
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		mInflater.inflate(R.layout.myedittext, this, true);
	}

	protected void onFinishInflate() {
		super.onFinishInflate();
		et = (EditText) findViewById(R.id.et);
		tv = (TextView) findViewById(R.id.tv);
	}

	public void setText(int resId) {
		tv.setText(resId);
	}

}


下面是使用方法:
<com.ds.widget.MyEditText
        android:id="@+id/myedittext"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

好了,完工。具体要了解如何定义自己的属性,请看下面:
http://ericchan2012.iteye.com/admin/blogs/1650900
http://ericchan2012.iteye.com/blog/1650754
分享到:
评论

相关推荐

    Android复合控件学习之自定义标题栏

    首先,我们需要理解Android中的复合控件(Composite Control)。复合控件是由多个基本组件组合而成的复杂UI元素,它封装了特定的功能和行为,便于重用和维护。自定义标题栏就是一个典型的复合控件例子,通常包括返回...

    Android自定义复合控件

    综上所述,自定义Android复合控件是提升应用UI个性化和功能性的关键手段。通过学习和实践,开发者能够创建出满足项目需求的独特组件,从而增强应用的竞争力。在"fuhe"文件中,可能包含了实现这个自定义控件的相关...

    Android 自定义控件 组合控件

    组合控件,顾名思义,是指将多个基本控件通过特定的方式组合在一起,形成一个具有新功能或新外观的复合控件。本篇文章将深入探讨如何在Android中实现自定义组合控件,以及如何处理点击事件。 首先,我们从创建一个...

    Android 图片+文字复合控件,有选中效果

    在Android开发中,创建自定义复合控件是提高代码复用性和界面设计灵活性的重要手段。本文将探讨如何创建一个图片和文字相结合的控件,并实现选中效果与点击事件的处理,以提升用户体验。 首先,我们需要理解“复合...

    MyCompoundView自定义复合控件

    在Android开发中,自定义复合控件(Compound View)是一项重要的技能,它允许开发者将多个基本组件组合成一个更复杂的视图,以满足特定的UI需求。标题“MyCompoundView自定义复合控件”提示我们将深入探讨如何创建并...

    Android 自定义组合控件案例

    2. 组合控件:结合多个基础控件,形成新的复合控件,如日历视图、滑动选择器等。 3. 完全自定义:从头构建控件,实现特定功能,如画布上的手势识别组件。 二、自定义控件的基本步骤 1. 创建控件类:继承自View或者...

    android 开发进阶 自定义控件 类似 TextView

    7. **子视图管理**:如果需要,还可以在自定义控件内部添加其他视图,如ImageView或ProgressBar,形成复合控件。 8. **性能优化**:在设计自定义控件时,要考虑到性能因素,避免在`onDraw()`方法中执行耗时操作,...

    《Android 群英传》读书笔记:自定义 View 之创建复合控件

    《Android群英传》中关于自定义View的章节深入探讨了如何创建复合控件,这是一个实用且关键的话题,因为它能提高代码的复用性和可维护性。 首先,我们来理解“复合控件”的概念。复合控件是由一个或多个基本的...

    Android自定义控件

    在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。自定义控件允许开发者根据需求构建功能更丰富、界面更美观的组件。在这个主题中,我们将深入探讨如何通过一个常见的标题控件来实践自定义组合...

    Android图表控件

    "Android图表控件"提供了一种高效的方式,通过图形化数据来帮助用户更好地理解和解析信息。这里我们聚焦于一个名为"WilliamChart"的库,它是一个强大的Android图表组件,以其精美的设计和丰富的定制功能而闻名。 ...

    Android 自定义控件 组合控件 TitleBar

    例如,我们可以基于LinearLayout、RelativeLayout 或 FrameLayout 来创建一个复合控件,这样可以结合多个简单的视图元素,形成具有特定功能的复杂组件。 创建TitleBar时,我们首先需要考虑它应有的基本组件,如标题...

    Android自定义控件知识文档.rar

    这种方式是将多个基础控件组合成一个复合视图,通常用于封装复用性高的组件。通过使用ViewGroup作为基类,我们可以管理子视图,处理触摸事件,实现复杂的交互逻辑。 此外,自定义动画和手势识别也是自定义控件中的...

    Android定制控件:带图标有颜色TextView、可编辑文本框

    在Android开发中,自定义控件能够满足开发者对界面的个性化需求,提升应用的用户体验。本文将详细探讨如何实现三个关键的自定义控件:带图标的TextView、带图标的可编辑文本框以及设置全屏背景图片。我们将深入讨论...

    Android开发之自定义控件用法详解

    3. **组合控件**:将多个标准控件组合在一起,形成一个新的复合控件,这是最常见也最灵活的方式,可以在不修改系统控件源码的情况下实现复杂效果。 本文将主要介绍组合控件的使用。例如,我们想要创建一个包含图片...

    Android自定义view——组合控件

    本主题将深入探讨如何在Android中实现自定义组合控件,即利用多个基础控件构建一个具有特殊功能或样式的复合视图。 首先,我们要理解自定义View的基本结构。一个自定义View通常继承自Android的View或者ViewGroup类...

    Android组合控件实现功能强大的自定义控件

    2. **组合控件**:将多个现有的控件组合在一起,创建出具有新功能的复合控件。 3. **重写View类**:从头开始编写控件,实现全新的视觉和交互效果。 组合控件的优势在于它能够将多个基础控件的功能整合,形成一个新...

    android之自定义组合控件

    这样的示例可能会涉及到如何组合TextView和ImageView,创建一个类似按钮的效果,或者结合多个开关控件形成一个复合选择器。 通过学习和实践自定义组合控件,开发者能够深入理解Android视图系统的底层机制,从而更好...

Global site tag (gtag.js) - Google Analytics