【Android】自己定义View、画布Canvas与画笔Paint

安卓自己定义View事实上非常easy。

这个View能够像《【Android】利用Java代码布局,button加入点击事件》(点击打开链接)一样。利用Java代码生成一系列的组件。

也能够配合画布Canvas与画笔Paint来使用。

以下用一个样例来说明。例如以下图,有一个自己定义布局View。里面摆放着,利用画布Canvas与画笔Paint绘制出来的蓝色正方形与红色文字。

在res\layout\activity_main.xml中。直接像摆放安卓固有组件一样,能够直接使用这个我定义组件。里面有蓝色正方形与红色文字。尽管没有卵用,可是这个简单样例,说明了自己定义View是怎么使用的。对于一些通过多个固有组件摆出来的视图能够多次复用。当中。这里com.define_view.MyView是我利用Java代码构造出来的类。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <com.define_view.MyView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</FrameLayout>

也就是说,要自己定义视图。必须先在src中新建一个Java文件。

这个Java文件名称字叫MyView.java,继承android.view.View。

新建完MyView.java。Eclipse会立即提醒你须要建立构造方法。

假设以后这个自己定义View以后须要被Java代码操作。则须要第一个构造方法,假设这个自己定义View以后不过在xml文件里静态摆放则只须要第二个构造方法。假设两者都须要。你能够同一时候建立这两个构造方法……这里使用第二个。

之后,通过右击空白处->Source->Override/Implement Methods,直接从Eclipse拿来父类onDraw的方法。进行改写。

把View.java的代码改写之后例如以下:

package com.define_view;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

public class MyView extends View {
	private Paint paint;

	public MyView(Context context, AttributeSet attributeSet) {
		super(context, attributeSet);
		// 初始化画笔,不论什么初始化都不应在onDraw方法中,否则Eclipse会出现太过耗费内存的警告
		// 构造方法就是用来初始化各种工具的
		paint = new Paint();

	}

	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		paint.setColor(Color.BLUE);// 设置画笔颜色为蓝色
		canvas.drawRect(10, 10, 100, 100, paint); // 绘制左上角在(10,10),大小为100x100的矩形
		paint.setColor(Color.RED);// 设置画笔颜色为红色
		paint.setTextSize(24);// 设置文字大小为24
		canvas.drawText("我是被画出来的", 10, 120, paint);// 在(10,120)绘制文字
	}

}

之后在res\values\strings.xml改改应用名称,这个app就完毕了。自己定义View已经在上面的res\layout\activity_main.xml布置。

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

>
<resources>

    <string name="app_name">自己定义view</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>

</resources>
时间: 2024-10-26 22:17:18

【Android】自己定义View、画布Canvas与画笔Paint的相关文章

【Android】自定义View、画布Canvas与画笔Paint

安卓自定义View其实很简单.这个View可以像<[Android]利用Java代码布局,按钮添加点击事件>(点击打开链接)一样,利用Java代码生成一系列的组件.也可以配合画布Canvas与画笔Paint来使用. 下面用一个例子来说明.如下图,有一个自定义布局View,里面摆放着,利用画布Canvas与画笔Paint绘制出来的蓝色正方形与红色文字. 在res\layout\activity_main.xml中,直接像摆放安卓固有组件一样,可以直接使用这个我定义组件.里面有蓝色正方形与红色文字

【Android】自己定义View、画家(画布)Canvas与画笔Paint的应用——绘图、涂鸦板app的实现

利用一个简单的绘图app来说明安卓的图形处理类与自己定义View的应用. 例如以下图,有一个供用户自己随意绘图.涂鸦的app. 这里不做那么花俏了,仅提供黑白两色.但能够改变笔尖的粗细. 实质上这里的橡皮擦就是白色的画笔,根本不用使用到画笔的setXfermode方法,要搞一堆复杂的project. 用户画完图之后能够保存图像.图像的文件名称是当前的时间.保存的位置是sdcard的根文件夹. 制作步骤例如以下: 1.先设置好字体文件res\values\strings.xml,主要是app的名称

Android 自己定义View (二) 进阶

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24300125 继续自己定义View之旅.前面已经介绍过一个自己定义View的基础的样例,Android 自己定义View (一),假设你还对自己定义View不了解能够去看看.今天给大家带来一个略微复杂点的样例. 自己定义View显示一张图片,以下包括图片的文本介绍,类似相片介绍什么的,只是不重要,主要是学习自己定义View的使用方法么. 还记得上一篇讲的4个步骤么: 1.自己定

Android 自己定义View学习(2)

上一篇学习了基本使用方法,今天学一下略微复杂一点的.先看一下效果图 为了完毕上面的效果还是要用到上一期开头的四步 1,属性应该要有颜色,要有速度 <?xml version="1.0" encoding="utf-8"?> <resources> <attr name="speed" format="integer" /> <attr name="circleColor&qu

手把手带你画一个 时尚仪表盘 Android 自己定义View

拿到美工效果图.咱们程序猿就得画得一模一样. 为了不被老板喷,仅仅能多练啊. 听说你认为前面几篇都so easy,那今天就带你做个相对照较复杂的. 转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50468674 注意:每一篇博客都是建立在之前博客的基础知识上的,假设你刚接触自己定义view.能够来说说自己定义view简单学习的方式这里看我曾经的文章.记录了我学习自己定义view的过程,并且前几篇博客或多或少犯了一些错误(反复绘制,o

安卓自己定义View进阶-Canvas之绘制基本形状

Canvas之绘制基本形状 作者微博: @GcsSloop [本系列相关文章] 在上一篇自己定义View分类与流程中我们了解自己定义View相关的基本知识,只是,这些东西依然还是理论,并不能拿来(zhuang)用(B), 这一次我们就了解一些能(zhaung)用(B)的东西. 在本篇文章中,我们先了解Canvas的基本用法,最后用一个小演示样例来结束本次教程. 一.Canvas简单介绍 Canvas我们能够称之为画布,能够在上面绘制各种东西,是安卓平台2D图形绘制的基础,非常强大. **一般来说

Android自己定义View基础篇(三)之SwitchButton开关

自己定义View基础篇(二) 自己定义View基础篇(一) 自己定义View原理 我在解说之前,先来看看效果图,有图有真相:(转换gif图片效果太差) 那来看看真实图片: 假设你要更改样式,请改动例如以下图片: switch_ball switch_bg switch_black switch_bottom 我在这里就不反复解说View与ViewGroup的关系,View的绘制流程.假设你对自己定义View还不甚了解.请看上面几篇文章. 用法 xml文件: <com.github.ws.swit

Android 自己定义View (四) 视频音量调控

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24529807 今天没事逛eoe,看见有人求助要做一个以下的效果,我看以下一哥们说要用12张图片,这尼玛逆天的麻烦,细致看了一下感觉自己定义控件木有问题,就花点时间写了一个. 好了,进入正题,继续我们的自己定义View四部曲. 1.先分许须要的属性,两个小块的颜色.一张中间的图片.间隙大小.一个多少个块块.分析完成,開始写attr.xml <?xml version="1.

android 子定义View(2)

onMeasure中获取自定义View的mode 和width, height, // TODO 测量 int mode = MeasureSpec.getMode(widthMeasureSpec); int width = MeasureSpec.getSize(widthMeasureSpec); 通过MeasureSpec的三个mode类型, 而进行width和height的设置, 如果是EXACTLY 测量的数据就是自定义view的高度, 在不居中 layout_width或layou