`
liu86th
  • 浏览: 117980 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

[转]Android 中自定义View的应用.

阅读更多

大家好我们今天的教程是在Android 教程中自定义View 的学习,对于初学着来说,他们习惯了Android 传统的页面布局方式,如下代码:

 

 

<?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"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>

当然上面的布局方式可以帮助我们完成简单应用的开发了,但是如果你想写一个复杂的应用,这样就有点牵强了,大家不信可以下源码都研究看看,高手写的布局方式,如上面的布局高手通常是这样写的:

 

 <?xml version="1.0" encoding="utf-8"?>

<A>
	<B></B>
</A>

 

 其中A extends LinerLayout, B extends TextView.

 为了帮助大家更容易理解,我写了一个简单的Demo ,具体步骤如下:

 

首先新建一个Android 工程 命名为ViewDemo .

 

然后自定义一个View 类,命名为MyView(extends View) .代码如下:

 package com.android.tutor;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Paint.Style;
import android.util.AttributeSet;
import android.view.View;
public class MyView extends View {
	private Paint mPaint;
	private Context mContext;
	private static final String mString = "Welcome to Mr Wei's blog";
	
	public MyView(Context context) {
		super(context);
	
	}
	public MyView(Context context,AttributeSet attr)
	{
		super(context,attr);
	
	}
	@Override
	protected void onDraw(Canvas canvas) {
		// TODO Auto-generated method stub
		super.onDraw(canvas);
		
		mPaint = new Paint();
		
		//设置画笔颜色
		mPaint.setColor(Color.RED);
		//设置填充
		mPaint.setStyle(Style.FILL);
		
		//画一个矩形,前俩个是矩形左上角坐标,后面俩个是右下角坐标
		canvas.drawRect(new Rect(10, 10, 100, 100), mPaint);
		
		mPaint.setColor(Color.BLUE);
		//绘制文字
		canvas.drawText(mString, 10, 110, mPaint);
	}
}

   然后将我们自定义的View 加入到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"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
<com.android.tutor.MyView
	android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
/>
</LinearLayout>

 最后执行之,效果如下图:

 

 

OK,大功告成,今天就写到这里,开始做饭了,老婆孩子等我做饭了,lol~

 

转自:http://blog.csdn.net/android_tutor/article/details/5499731

分享到:
评论

相关推荐

    android 自定义view比较综合的例子

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的用户界面。这个“android 自定义view比较综合的例子”显然涵盖了多个高级话题,旨在帮助有一定基础的开发者提升自定义...

    Android中自定义View

    总结起来,Android中的自定义View是提升应用界面独特性和用户体验的关键。通过深入理解绘制原理、尺寸测量、事件处理、动画机制以及性能优化,开发者可以创建出功能强大且性能优异的自定义视图组件。在实践中不断...

    Android 自定义View视图

    在Android应用开发中,自定义View视图是一个重要的技术,它允许开发者根据特定需求创建独一无二的用户界面元素。本文将深入探讨如何通过继承View类来实现一个自定义的罗盘界面,以帮助开发者理解自定义视图的工作...

    android 自定义View界面大合集

    通过学习和实践这些知识点,开发者能够构建出各种各样的自定义View,满足Android应用中的各种独特需求。"Linux公社简介LinuxIDC.com.pdf"和"logo.png"可能是相关教程或项目中的资料,但它们不直接影响自定义View的...

    android自定义转盘view

    在Android开发中,自定义View是一项常见的需求,它允许开发者根据特定的设计或功能需求创建独特的用户界面组件。本文将深入探讨如何实现一个自定义的转盘View,即"android自定义转盘view",并结合描述中的关键词...

    安卓UI布局相关-test(自定义View电量.rar

    自定义View在Android中通常涉及到以下几个核心步骤: 1. **创建新类**:首先,我们需要创建一个新的Java类继承自Android的基础View类或已有的ViewGroup子类,如LinearLayout或RelativeLayout。在这个例子中,我们...

    Android 创建自定义View源码

    本教程将深入探讨Android自定义View的源码实现过程,旨在帮助开发者理解和掌握这一核心技能。 首先,了解自定义View的基本步骤: 1. **定义View类**:创建一个新的Java类,继承自`android.view.View`或其子类,如`...

    android 自定义view及自定义属性

    在Android开发中,自定义View和自定义属性是提升应用个性化和功能扩展性的重要手段。本文将深入探讨这两个核心概念,以及如何在实际项目中应用它们。 ### 自定义View 自定义View允许开发者创建自己的视图组件,以...

    android自定义view自定义buttonDemo

    在Android开发中,自定义View和自定义Button是提升应用界面独特性和交互体验的重要手段。本Demo主要展示了如何通过自定义View和自定义Button来实现特定的视觉效果和交互功能,比如Button在被点击时变换背景。下面...

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

    通过学习这个压缩包中的源码,开发者可以深入理解Android自定义控件的工作原理,从而在实际项目中创建出更具创意和实用性的控件。记得对源码进行调试和测试,确保其在具体应用场景中的稳定性和性能。

    基于Android的自定义日历控件.zip

    1. **自定义View类**:在这个项目中,开发者可能会创建一个继承自`View`或`ViewGroup`的自定义类,比如`CustomCalendarView`。这个类会包含绘制日历布局、处理触摸事件等核心逻辑。 2. **布局设计**:在XML布局文件...

    Android 自定义View实现水平温度计

    总的来说,这个项目涵盖了Android自定义View的基本流程,以及图形绘制、颜色处理、动态更新等核心知识点,是学习Android自定义组件的一个良好实践。通过学习和研究,开发者不仅可以掌握自定义View的开发技巧,还能...

    Android高级应用源码-自定义View实现折线图.rar

    总之,这个"Android高级应用源码-自定义View实现折线图"示例提供了一次深入了解Android自定义View的机会,通过学习这个源码,开发者可以掌握绘制图形的基本技巧,以及如何将数据与UI组件相结合,创建出具有高度定制...

    android项目下对图片高斯模糊毛玻璃自定义view

    本项目旨在教你如何在Android项目中创建一个自定义View,用于实现高斯模糊和毛玻璃效果,并且允许开发者自定义模糊程度。以下是关于这个主题的详细讲解。 一、高斯模糊原理 高斯模糊是一种图像处理技术,通过对图像...

    Android音频剪辑裁剪自定义view

    本文将深入探讨如何创建一个Android音频剪辑裁剪的自定义View,以便用户可以通过拖动来调整音频的剪切时长,并通过滑块实时显示对应的时间点。 首先,我们需要理解Android的音频处理基础。Android提供了`...

    基于Android的自定义控件设计.pdf

    在Android应用开发中,自定义控件是一种常见且重要的技术,它允许开发者根据特定需求创建具有独特功能的组件。在“基于Android的自定义控件设计”中,作者王建功探讨了如何设计一个能够自由缩放的自定义控件,以适应...

    Android 自定义pogressbar.zip

    这些属性可以通过`&lt;declare-styleable&gt;`标签在res/values/attrs.xml文件中声明,然后在自定义View的构造函数中通过`ContextThemeWrapper.obtainStyledAttributes()`方法获取。 5. **自定义样式**: 通过设置自定义...

    Android自定义View实例:深度剖析 水晶/水滴 波浪球 实现步骤详解

    在Android开发中,自定义View是一项重要的技能,它允许开发者创造出独特且富有表现力的UI元素,提升用户体验。本文将深度剖析如何实现一个名为“水晶/水滴 波浪球”的自定义View,并通过详细步骤讲解,帮助你掌握...

    Android自定义seekbar源码.zip

    本资料"Android自定义seekbar源码.zip"提供了关于自定义SeekBar的源代码,帮助我们深入理解如何在Android中实现这一功能。 自定义 SeekBar 主要涉及以下几个方面: 1. **XML布局文件**:首先,我们需要在布局文件...

    android自定义veiw——波浪线

    本文将围绕“android自定义view——波浪线”这一主题,深入探讨如何实现这样的自定义组件。 首先,我们了解自定义View的基本步骤。创建一个自定义View通常需要继承自Android的View或其子类,如ViewGroup。在这个...

Global site tag (gtag.js) - Google Analytics