Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 601|回复: 0

[实例教程]android开发:Android 中自定义View的应用

[复制链接]

该用户从未签到

发表于 2011-10-22 13:19:17 | 显示全部楼层 |阅读模式
大家好我们今天的教程是在Android 教程中自定义View 的学习,对于初学着来说,他们习惯了Android 传统的页面布局方式,如下代码: <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    androidrientation="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>



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

使用道具 举报

该用户从未签到

发表于 2011-10-22 13:19:23 | 显示全部楼层

Re:[实例教程]android开发:Android

谢谢管理员,学习了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-9-21 07:54 , Processed in 0.354454 second(s), 33 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表