大家好我们今天的教程是在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视图是一个重要的技术,它允许开发者根据特定需求创建独一无二的用户界面元素。本文将深入探讨如何通过继承View类来实现一个自定义的罗盘界面,以帮助开发者理解自定义视图的工作...
通过学习和实践这些知识点,开发者能够构建出各种各样的自定义View,满足Android应用中的各种独特需求。"Linux公社简介LinuxIDC.com.pdf"和"logo.png"可能是相关教程或项目中的资料,但它们不直接影响自定义View的...
在Android开发中,自定义View是一项常见的需求,它允许开发者根据特定的设计或功能需求创建独特的用户界面组件。本文将深入探讨如何实现一个自定义的转盘View,即"android自定义转盘view",并结合描述中的关键词...
自定义View在Android中通常涉及到以下几个核心步骤: 1. **创建新类**:首先,我们需要创建一个新的Java类继承自Android的基础View类或已有的ViewGroup子类,如LinearLayout或RelativeLayout。在这个例子中,我们...
本教程将深入探讨Android自定义View的源码实现过程,旨在帮助开发者理解和掌握这一核心技能。 首先,了解自定义View的基本步骤: 1. **定义View类**:创建一个新的Java类,继承自`android.view.View`或其子类,如`...
在Android开发中,自定义View和自定义属性是提升应用个性化和功能扩展性的重要手段。本文将深入探讨这两个核心概念,以及如何在实际项目中应用它们。 ### 自定义View 自定义View允许开发者创建自己的视图组件,以...
在Android开发中,自定义View和自定义Button是提升应用界面独特性和交互体验的重要手段。本Demo主要展示了如何通过自定义View和自定义Button来实现特定的视觉效果和交互功能,比如Button在被点击时变换背景。下面...
通过学习这个压缩包中的源码,开发者可以深入理解Android自定义控件的工作原理,从而在实际项目中创建出更具创意和实用性的控件。记得对源码进行调试和测试,确保其在具体应用场景中的稳定性和性能。
1. **自定义View类**:在这个项目中,开发者可能会创建一个继承自`View`或`ViewGroup`的自定义类,比如`CustomCalendarView`。这个类会包含绘制日历布局、处理触摸事件等核心逻辑。 2. **布局设计**:在XML布局文件...
总的来说,这个项目涵盖了Android自定义View的基本流程,以及图形绘制、颜色处理、动态更新等核心知识点,是学习Android自定义组件的一个良好实践。通过学习和研究,开发者不仅可以掌握自定义View的开发技巧,还能...
总之,这个"Android高级应用源码-自定义View实现折线图"示例提供了一次深入了解Android自定义View的机会,通过学习这个源码,开发者可以掌握绘制图形的基本技巧,以及如何将数据与UI组件相结合,创建出具有高度定制...
本项目旨在教你如何在Android项目中创建一个自定义View,用于实现高斯模糊和毛玻璃效果,并且允许开发者自定义模糊程度。以下是关于这个主题的详细讲解。 一、高斯模糊原理 高斯模糊是一种图像处理技术,通过对图像...
本文将深入探讨如何创建一个Android音频剪辑裁剪的自定义View,以便用户可以通过拖动来调整音频的剪切时长,并通过滑块实时显示对应的时间点。 首先,我们需要理解Android的音频处理基础。Android提供了`...
在Android应用开发中,自定义控件是一种常见且重要的技术,它允许开发者根据特定需求创建具有独特功能的组件。在“基于Android的自定义控件设计”中,作者王建功探讨了如何设计一个能够自由缩放的自定义控件,以适应...
这些属性可以通过`<declare-styleable>`标签在res/values/attrs.xml文件中声明,然后在自定义View的构造函数中通过`ContextThemeWrapper.obtainStyledAttributes()`方法获取。 5. **自定义样式**: 通过设置自定义...
在Android开发中,自定义View是一项重要的技能,它允许开发者创造出独特且富有表现力的UI元素,提升用户体验。本文将深度剖析如何实现一个名为“水晶/水滴 波浪球”的自定义View,并通过详细步骤讲解,帮助你掌握...
本资料"Android自定义seekbar源码.zip"提供了关于自定义SeekBar的源代码,帮助我们深入理解如何在Android中实现这一功能。 自定义 SeekBar 主要涉及以下几个方面: 1. **XML布局文件**:首先,我们需要在布局文件...
本文将围绕“android自定义view——波浪线”这一主题,深入探讨如何实现这样的自定义组件。 首先,我们了解自定义View的基本步骤。创建一个自定义View通常需要继承自Android的View或其子类,如ViewGroup。在这个...