展会信息港展会大全

Android自定义View的使用
来源:互联网   发布日期:2016-01-14 09:50:43   浏览:1512次  

导读:Android教程中自定义View的学习,对于初学着来说,他们习惯了Android传统的页面布局方式,如下代码:01?xmlversion=1.0encoding=utf-8?02LinearLayoutxmlns:android=http://schemas.android.com/apk/res/......

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

01

<?xml version="1.0" encoding="utf-8"?>

02

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

03

android:orientation="vertical"

04

android:layout_width="fill_parent"

05

android:layout_height="fill_parent"

06

>

07

<TextView

08

android:layout_width="fill_parent"

09

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>

其中A extends LinerLayout, B extends TextView.

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

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

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

01

package com.android.tutor;

02

import android.content.Context;

03

import android.graphics.Canvas;

04

import android.graphics.Color;

05

import android.graphics.Paint;

06

import android.graphics.Rect;

07

import android.graphics.Paint.Style;

08

import android.util.AttributeSet;

09

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

public MyView(Context context,AttributeSet attr)

19

{

20

super(context,attr);

21

}

22

@Override

23

protected void onDraw(Canvas canvas) {

24

// TODO Auto-generated method stub

25

super.onDraw(canvas);

26

mPaint = new Paint();

27

//设置画笔颜色

28

mPaint.setColor(Color.RED);

29

//设置填充

30

mPaint.setStyle(Style.FILL);

31

//画一个矩形,前俩个是矩形左上角坐标,后面俩个是右下角坐标

32

canvas.drawRect(new Rect(10, 10, 100, 100), mPaint);

33

mPaint.setColor(Color.BLUE);

34

//绘制文字

35

canvas.drawText(mString, 10, 110, mPaint);

36

}

37

}

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

01

<?xml version="1.0" encoding="utf-8"?>

02

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

03

android:orientation="vertical"

04

android:layout_width="fill_parent"

05

android:layout_height="fill_parent"

06

>

07

<TextView

08

android:layout_width="fill_parent"

09

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>

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

赞助本站

人工智能实验室

相关热词: 自定义 View

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港