Android 中View.onDraw(Canvas canvas)的使用方法
发布时间 - 2026-01-11 03:24:13 点击率:次Android 中View.onDraw(Canvas canvas)的使用方法

View通过View.onDraw(Canvas canvas)来Draw.
我们可以定义自己的继承于View的TestView,然后重载View.onDraw(Canvas canvas).
对于自定义的TestView如何与Activity关联?有以下两种方式:
- 直接在setContentView(View view)里面加进去自定义的View:setContentView(new TestView(this)).
- 另外,可以在layout文件里面可以使用自定义的View(如何自定义的View为内部类,就会失效),
如:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.android.test.TestView
android:id="@+id/testview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</FrameLayout>
以下为使用onDraw(Canvas canvas)画矩形区域,及在其上画文本的实例(通过使用内部类使程序显得更加简洁,紧凑):
package com.android.test;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
public class TestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new TestView(this));
}
public class TestView extends View {
private Paint mPaint = new Paint();
public TestView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
String text = "Android - 机器人";
mPaint.setColor(Color.WHITE);
Paint paint = new Paint();
paint.setColor(Color.RED);
String familyName = "宋体";
Typeface font = Typeface.create(familyName,Typeface.BOLD);
paint.setTypeface(font);
paint.setTextSize(22);
canvas.drawRect(new Rect(0, 0, 320, 240), mPaint);
canvas.drawText(text, 0, 100, paint);
}
}
}
运行效果如下图:
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# Canvas的使用
# Canvas中View.onDraw使用方法
# Android 重写ViewGroup 分析onMeasure()和onLayout()方法
# Android View.onMeasure方法详解及实例
# Android ListView 和ScroolView 出现onmeasure空指针的解决办法
# Android 通过onDraw实现在View中绘图操作的示例
# Android onMeasure与onDraw及自定义属性使用示例
# 自定义
# 自己的
# 就会
# 如有
# 两种
# 我们可以
# 希望能
# 可以使用
# 谢谢大家
# 如下图
# 宋体
# 上画
# 疑问请
# layout_width
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
成都网站制作公司哪家好,四川省职工服务网是做什么用?
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
怎样使用JSON进行数据交换_它有什么限制
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
免费网站制作appp,免费制作app哪个平台好?
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
微信小程序 HTTPS报错整理常见问题及解决方案
Laravel怎么调用外部API_Laravel Http Client客户端使用
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
Laravel如何使用withoutEvents方法临时禁用模型事件
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
详解Android——蓝牙技术 带你实现终端间数据传输
JS中对数组元素进行增删改移的方法总结
QQ浏览器网页版登录入口 个人中心在线进入
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
使用Dockerfile构建java web环境
微信小程序 闭包写法详细介绍
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
Python制作简易注册登录系统
动图在线制作网站有哪些,滑动动图图集怎么做?
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
网站页面设计需要考虑到这些问题
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
如何在阿里云服务器自主搭建网站?
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
如何在Windows环境下新建FTP站点并设置权限?
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
高端建站三要素:定制模板、企业官网与响应式设计优化
实现点击下箭头变上箭头来回切换的两种方法【推荐】
html文件怎么打开证书错误_https协议的html打开提示不安全【指南】
微信小程序 scroll-view组件实现列表页实例代码
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
如何在香港服务器上快速搭建免备案网站?
网站建设要注意的标准 促进网站用户好感度!
三星、SK海力士获美批准:可向中国出口芯片制造设备
如何快速登录WAP自助建站平台?
清除minerd进程的简单方法
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
Python数据仓库与ETL构建实战_Airflow调度流程详解
,交易猫的商品怎么发布到网站上去?
高端智能建站公司优选:品牌定制与SEO优化一站式服务

