`
flycomos.lee
  • 浏览: 280486 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 中自定义View的应用.

 
阅读更多

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

 

  1. <?xml version= "1.0"  encoding= "utf-8" ?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
  3.     android:orientation="vertical"   
  4.     android:layout_width="fill_parent"   
  5.     android:layout_height="fill_parent"   
  6.     >  
  7. <TextView    
  8.     android:layout_width="fill_parent"    
  9.     android:layout_height="wrap_content"    
  10.     android:text="@string/hello"   
  11.     />  
  12. </LinearLayout>  

 

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

 

  1. <?xml version= "1.0"  encoding= "utf-8" ?>  
  2. <A>  
  3.     <B></B>  
  4. </A>  
  1. 其中A  extends  LinerLayout, B  extends  TextView.  

 

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

 

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

 

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

 

  1. package  com.android.tutor;  
  2. import  android.content.Context;  
  3. import  android.graphics.Canvas;  
  4. import  android.graphics.Color;  
  5. import  android.graphics.Paint;  
  6. import  android.graphics.Rect;  
  7. import  android.graphics.Paint.Style;  
  8. import  android.util.AttributeSet;  
  9. import  android.view.View;  
  10. public   class  MyView  extends  View {  
  11.     private  Paint mPaint;  
  12.     private  Context mContext;  
  13.     private   static   final  String mString =  "Welcome to Mr Wei's blog" ;  
  14.       
  15.     public  MyView(Context context) {  
  16.         super (context);  
  17.       
  18.     }  
  19.     public  MyView(Context context,AttributeSet attr)  
  20.     {  
  21.         super (context,attr);  
  22.       
  23.     }  
  24.     @Override   
  25.     protected   void  onDraw(Canvas canvas) {  
  26.         // TODO Auto-generated method stub   
  27.         super .onDraw(canvas);  
  28.           
  29.         mPaint = new  Paint();  
  30.           
  31.         //设置画笔颜色   
  32.         mPaint.setColor(Color.RED);  
  33.         //设置填充   
  34.         mPaint.setStyle(Style.FILL);  
  35.           
  36.         //画一个矩形,前俩个是矩形左上角坐标,后面俩个是右下角坐标   
  37.         canvas.drawRect(new  Rect( 10 10 100 100 ), mPaint);  
  38.           
  39.         mPaint.setColor(Color.BLUE);  
  40.         //绘制文字   
  41.         canvas.drawText(mString, 10 110 , mPaint);  
  42.     }  
  43. }  

 

然后将我们自定义的View 加入到main.xml 布局文件中,代码如下:

 

  1. <?xml version= "1.0"  encoding= "utf-8" ?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
  3.     android:orientation="vertical"   
  4.     android:layout_width="fill_parent"   
  5.     android:layout_height="fill_parent"   
  6.     >  
  7. <TextView    
  8.     android:layout_width="fill_parent"    
  9.     android:layout_height="wrap_content"    
  10.     android:text="@string/hello"   
  11.     />  
  12. <com.android.tutor.MyView  
  13.     android:layout_width="fill_parent"    
  14.     android:layout_height="fill_parent"    
  15. />  
  16. </LinearLayout>  

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

 

 

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

分享到:
评论

相关推荐

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

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

    Android中自定义View

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

    Android 自定义View视图

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

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

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

    android 自定义View界面大合集

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

    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的自定义日历控件.zip

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

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

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

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

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

    Android 自定义pogressbar.zip

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

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

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

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

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

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

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

    Android自定义seekbar源码.zip

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

    Android音频剪辑裁剪自定义view

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

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

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

    android自定义veiw——波浪线

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

    Android应用源码之(添加自定义多边形).zip

    1. **自定义View**: 在Android中,如果系统提供的视图无法满足需求,我们可以创建自己的View类来扩展功能。这里可能创建了一个继承自`View`或`SurfaceView`的类,以实现多边形的绘制。 2. **Canvas与Paint**: ...

Global site tag (gtag.js) - Google Analytics