Android-自定义视图
2010-08-31 16:34
351 查看
折腾了一天,终于弄清楚了一个简单的自定义的视图,在这里做个笔记。
首先,建立一个Android工程,命名MyView。
然后,自定义一个类myView,继承View类。代码如下:
最后将我们自定义的View加入到main.xml布局文件中验证。
最后,一定要记得在LinearLayout标签中加入(如上面代码第三行):
xmlns:viewDemo="http://schemas.android.com/apk/res/com.android.randy.viewDemo"
不然找不到你自己定义的View。
贴图:
首先,建立一个Android工程,命名MyView。
然后,自定义一个类myView,继承View类。代码如下:
package com.android.randy.viewDemo; 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{ Paint mPaint; Context context; public static final String mString = "My first View."; public myView(Context context) { super(context); // TODO Auto-generated constructor stub //接收构造参数 this.context=context; //创建Paint对象 mPaint = new Paint(); } public myView(Context context,AttributeSet attrs){ super(context,attrs); //接收构造参数 this.context=context; //创建Paint对象 mPaint = new Paint(); } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); //设置画笔颜色 mPaint.setColor(Color.GREEN); //设置mPaint属性为实心填充 mPaint.setStyle(Style.FILL); //绘制一个矩形,第一个参数是矩形的范围Rect(左,上,右,下),第二个参数为画刷 canvas.drawRect(new Rect(10, 10, 100, 100), mPaint); //设置画刷颜色 mPaint.setColor(Color.BLUE); //绘制文字,第一个参数为String类型字符串, //第二个和第三个参数为文字显示位置的左上坐标, //第四个参数为画刷 canvas.drawText(mString, 10, 120, mPaint); } }
最后将我们自定义的View加入到main.xml布局文件中验证。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:viewDemo="http://schemas.android.com/apk/res/com.android.randy.viewDemo" 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.randy.viewDemo.myView android:id="@+id/myView" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>
最后,一定要记得在LinearLayout标签中加入(如上面代码第三行):
xmlns:viewDemo="http://schemas.android.com/apk/res/com.android.randy.viewDemo"
不然找不到你自己定义的View。
贴图:
相关文章推荐
- Android自定义视图三:给自定义视图添加“流畅”的动画
- ANDROID自定义视图——onMeasure流程,MeasureSpec详解
- ANDROID自定义视图——onMeasure流程,MeasureSpec详解
- Android自定义视图
- Android学习系列(3)--App自动更新之自定义进度视图和内部存储
- Android自定义视图一:扩展现有的视图,添加新的XML属性
- ANDROID自定义视图——onMeasure,MeasureSpec源码 流程 思路详解
- ANDROID自定义视图——onMeasure,MeasureSpec源码 流程 思路详解
- ANDROID自定义视图——onMeasure流程,MeasureSpec详解
- Android中GridView通过自定义适配器(未优化)实现图文视图排列
- Android 自定义Adapter动态更新ListView视图
- Android创建自定义视图列表对话框(数据库中的数据作为数据源,使用RecyclerView作为列表)
- 【转】ANDROID自定义视图——onLayout源码 流程 思路详解
- Android自定义视图(一)——onMeasure,MeasureSpec源码 流程 思路详解
- 『ANDROID』android自定义视图属性(atts.xml,TypedArray)学习
- 控件视图Android 自定义视图容器控件拦截ontouch事件传递给其子控件
- Android进阶练习-自定义视图(2)
- Android开发之自定义View(视图)用法详解
- Android开发笔记(十一)自定义视图的构造方法
- Android之——自定义罗盘视图