- 浏览: 280486 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
jasonking412:
鄙视抄袭,都TMD一样的。
Openfire red5.war下载已经配置 -
xhg19901120:
有没有下载地址啊
【转】Android 多级菜单 -
yxl2005play:
为什么是404?博主,求解
Openfire red5.war下载已经配置 -
tan2416:
回复看看。。。。。
实现在popwindow中展示listview列表 -
liufeng7600:
你好,求教: 我可不可以在pc上用web浏览器访问 Andr ...
android中实现JavaScript与Java之间实现互相调用
大家好我们今天的教程是在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~
发表评论
-
singleTop和singleTask有什么区别?(活动 Activity 四种加载模式)
2013-03-22 17:50 1440singleTop要求如果创建intent的时候栈顶已经有要 ... -
onCreateOptionsMenu和onPrepareOptionsMenu的差別在哪呢?
2012-09-17 16:25 1606在做菜单的功能,发现 ... -
android状态栏中多个通知冲突的问题
2012-09-11 17:49 6450网上看到的解决办法: 如果用相同的通知id, 该怎么 ... -
Anroid 异常:is not valid; is your activity running?
2012-08-29 11:23 1186是由于有activity时依附于另一个activity的, ... -
Android 如何让EditText不自动获取焦点
2012-08-15 11:42 3680在项目中,一进入一个页面, EditText默认就会自动获取焦 ... -
Animation
2012-07-31 23:51 841前面定义旋转,移动,缩放到什么程度, 后面是轴承点,根据这个点 ... -
删除android ScrollView边界阴影方法
2012-07-19 10:26 1329XML文件中添加以下方法: android:fadin ... -
Android的webview加载本地html、本apk内html和远程URL
2012-07-19 09:56 1695... -
如何在mac中创建android adb 环境
2012-05-03 23:31 1776Create an environment variable ... -
AlarmManager详细讲解
2012-04-21 23:33 1271AlarmManager的作用文档中的解释是:在特定的时刻为我 ... -
用Android代码实现打开USB调试
2012-03-20 17:52 9161打开Android手机的USB调试对于使用豌豆夹、调试程序等来 ... -
android ROM RAM 内部存储 系统存储 系统缓存区别
2012-03-16 14:58 5312内部存储┐ 系统存储├─物理位置是位于手机内部的非易失性存储 ... -
Android 读取MCC, MNC
2012-03-12 13:46 13321TelephonyManager telManager = ( ... -
Android 动画详解
2012-03-09 14:09 3739Tween动画又称“补间动画”、“中间动画”,这并不重要,就好 ... -
Region.Op
2012-02-29 17:37 972//INTERSECT 取两者交集,默认的方式 //DIF ... -
Eclipse中LogCat突然停止工作的解决
2012-01-18 17:34 1727... -
sdcard
2011-12-29 13:28 1049把文件放入SD卡 使用Activity的o ... -
Android 中自定义属性(attr.xml,TypedArray)的使用!
2011-10-07 17:39 1033在xml 文件里定义控件的属性,我们已经习惯了android ... -
android Canvas类介绍
2011-09-23 11:01 1344package com.yarin.android.E ... -
Android SeekBar
2011-09-15 15:40 1305SeekBar可以作为音乐播放器的进度指示和调整工具,音量调整 ...
相关推荐
在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的用户界面。这个“android 自定义view比较综合的例子”显然涵盖了多个高级话题,旨在帮助有一定基础的开发者提升自定义...
总结起来,Android中的自定义View是提升应用界面独特性和用户体验的关键。通过深入理解绘制原理、尺寸测量、事件处理、动画机制以及性能优化,开发者可以创建出功能强大且性能优异的自定义视图组件。在实践中不断...
在Android应用开发中,自定义View视图是一个重要的技术,它允许开发者根据特定需求创建独一无二的用户界面元素。本文将深入探讨如何通过继承View类来实现一个自定义的罗盘界面,以帮助开发者理解自定义视图的工作...
自定义View在Android中通常涉及到以下几个核心步骤: 1. **创建新类**:首先,我们需要创建一个新的Java类继承自Android的基础View类或已有的ViewGroup子类,如LinearLayout或RelativeLayout。在这个例子中,我们...
通过学习和实践这些知识点,开发者能够构建出各种各样的自定义View,满足Android应用中的各种独特需求。"Linux公社简介LinuxIDC.com.pdf"和"logo.png"可能是相关教程或项目中的资料,但它们不直接影响自定义View的...
本教程将深入探讨Android自定义View的源码实现过程,旨在帮助开发者理解和掌握这一核心技能。 首先,了解自定义View的基本步骤: 1. **定义View类**:创建一个新的Java类,继承自`android.view.View`或其子类,如`...
在Android开发中,自定义View和自定义属性是提升应用个性化和功能扩展性的重要手段。本文将深入探讨这两个核心概念,以及如何在实际项目中应用它们。 ### 自定义View 自定义View允许开发者创建自己的视图组件,以...
在Android开发中,自定义View和自定义Button是提升应用界面独特性和交互体验的重要手段。本Demo主要展示了如何通过自定义View和自定义Button来实现特定的视觉效果和交互功能,比如Button在被点击时变换背景。下面...
1. **自定义View类**:在这个项目中,开发者可能会创建一个继承自`View`或`ViewGroup`的自定义类,比如`CustomCalendarView`。这个类会包含绘制日历布局、处理触摸事件等核心逻辑。 2. **布局设计**:在XML布局文件...
通过学习这个压缩包中的源码,开发者可以深入理解Android自定义控件的工作原理,从而在实际项目中创建出更具创意和实用性的控件。记得对源码进行调试和测试,确保其在具体应用场景中的稳定性和性能。
在Android应用开发中,自定义控件是一种常见且重要的技术,它允许开发者根据特定需求创建具有独特功能的组件。在“基于Android的自定义控件设计”中,作者王建功探讨了如何设计一个能够自由缩放的自定义控件,以适应...
这些属性可以通过`<declare-styleable>`标签在res/values/attrs.xml文件中声明,然后在自定义View的构造函数中通过`ContextThemeWrapper.obtainStyledAttributes()`方法获取。 5. **自定义样式**: 通过设置自定义...
总的来说,这个项目涵盖了Android自定义View的基本流程,以及图形绘制、颜色处理、动态更新等核心知识点,是学习Android自定义组件的一个良好实践。通过学习和研究,开发者不仅可以掌握自定义View的开发技巧,还能...
总之,这个"Android高级应用源码-自定义View实现折线图"示例提供了一次深入了解Android自定义View的机会,通过学习这个源码,开发者可以掌握绘制图形的基本技巧,以及如何将数据与UI组件相结合,创建出具有高度定制...
本项目旨在教你如何在Android项目中创建一个自定义View,用于实现高斯模糊和毛玻璃效果,并且允许开发者自定义模糊程度。以下是关于这个主题的详细讲解。 一、高斯模糊原理 高斯模糊是一种图像处理技术,通过对图像...
本资料"Android自定义seekbar源码.zip"提供了关于自定义SeekBar的源代码,帮助我们深入理解如何在Android中实现这一功能。 自定义 SeekBar 主要涉及以下几个方面: 1. **XML布局文件**:首先,我们需要在布局文件...
本文将深入探讨如何创建一个Android音频剪辑裁剪的自定义View,以便用户可以通过拖动来调整音频的剪切时长,并通过滑块实时显示对应的时间点。 首先,我们需要理解Android的音频处理基础。Android提供了`...
在Android开发中,自定义View是一项重要的技能,它允许开发者创造出独特且富有表现力的UI元素,提升用户体验。本文将深度剖析如何实现一个名为“水晶/水滴 波浪球”的自定义View,并通过详细步骤讲解,帮助你掌握...
本文将围绕“android自定义view——波浪线”这一主题,深入探讨如何实现这样的自定义组件。 首先,我们了解自定义View的基本步骤。创建一个自定义View通常需要继承自Android的View或其子类,如ViewGroup。在这个...
1. **自定义View**: 在Android中,如果系统提供的视图无法满足需求,我们可以创建自己的View类来扩展功能。这里可能创建了一个继承自`View`或`SurfaceView`的类,以实现多边形的绘制。 2. **Canvas与Paint**: ...