【Android】自定义View、画布Canvas与画笔Paint
来源:互联网 发布:mac登qq后如何远程控制 编辑:程序博客网 时间:2024/05/16 13:59
安卓自定义View其实很简单。这个View可以像《【Android】利用Java代码布局,按钮添加点击事件》(点击打开链接)一样,利用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();}@Overrideprotected 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);// 设置文字大小为24canvas.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>
2 1
- 【Android】自定义View、画布Canvas与画笔Paint
- 画布Canvas与画笔Paint
- 【Android】自定义View、画家(画布)Canvas与画笔Paint的应用——画图、涂鸦板app的实现
- paint Canvas画笔、画布
- Android自定义View之画笔与画布
- Android自定义View之画笔与画布
- Android自定义View之画笔与画布
- Android自定义View之画笔与画布
- Android 的画布Canvas和画笔Paint
- android canvas画布 和 Paint画笔
- android 中的绘制类Paint 画笔,Canvas 画布,Bitmap 类和BitmapFactory及自定义属性
- Android自定义View之画笔与画布(2)
- android paint(画笔)及Canvas(画布)的使用
- Android 的Paint(画笔)及Canvas(画布)
- android paint画笔 设置透明度setAlpha及 canvas画布
- Canvas(画布)、Paint(画笔) 详解
- Android自定义View工具:Paint&Canvas(一)
- Android自定义View工具:Paint&Canvas(二)
- ecmall安装报错
- java的一些总结(不定期更新)
- Android contentprovider
- 简单工厂模式
- JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版下载
- 【Android】自定义View、画布Canvas与画笔Paint
- Java I/O 操作及优化建议
- python初学-01数据类型
- 巫启贤《太傻》背后的故事
- 快速排序算法
- wamp环境 安装memcached具体操作
- oracle存储过程调试
- Xmpp初始连接交互内容
- 向左无缝滚动