AndroidUI开发View自绘控件分享
开发 分享 控件 View 自绘
2023-06-13 09:15:00 时间
很多时候想要设计漂亮的AndroidUI,使用Android自带的控件无法满足我们的需要就要考虑自绘控件,在Android界面显示类View,可以通过继承扩展重写相关方法来实现我们的图形绘制。
首先我们需要了解下View类的底层实现,在SDK中我们可以看到View直接继承于Java的基类Object,实现了图形绘制和按键事件Drawable.CallbackKeyEvent.Callback的相关方法,我们自绘时主要实现其内部的onDraw方法,相关的界面计算可以重写onMeasure方法,对于相关的按键可以重载onKeyDown、onKeyUp以及onTouchEvent等,下面android开发网就以一个实例来表示。
publicclasscwjViewextendsView
{
publiccwjView(Contextcontext)
{
this(context,null);
}
publiccwjView(Contextcontext,AttributeSetattrs)
{
this(context,attrs,0);
}
publiccwjView(Contextcontext,AttributeSetattrs,intdefStyle)
{
super(context,attrs,defStyle);
//这里是本类的构造,相关初始化可以在这里添加代码
}
@Override
protectdvoidonDraw(Canvascanvas)
{
super(canvas);
//绘图的关键,可以看到已经包含了一个canvas句柄,可以直接通过我们前面讲到的Canvas类进行相关的操作,完整的例子,大家可以参考AndroidSDK中例子Snake贪食蛇游戏的实现。
}
}
有关View类的更新,我们直接通过调用invalidate(intl,intr,intr,intb)来更新一个Rect矩形区域,或更新全部,同时在线程中我们使用需要调用postInvalidate来更新界面。
相关文章
- SpringBoot企业级技术中台微服务架构与服务能力开发平台
- 【面经分享,附答案】字节系统架构,一面,后端开发
- 关于:三明治夹子机器人系统开发合约部署详情
- 嵌入式工程师进阶,基于AM64x开发板的IPC多核开发案例分享
- 分享一个适合【团队】开发的cmake【跨平台】工程模板
- 嵌入式HLS 案例开发步骤分享——基于Zynq-7010/20工业开发板(4)
- 【近3万字分享】《Android开发之路——10年老开发精心整理分享》
- 微信云开发被释放了,重新写了个足球游戏
- 为在线客服系统接入chatGPT(五):chatGPT接口演示网址,vue源码开发对接chatGPT,免登录无广告
- Tina_Linux_Display_开发指南
- 干货分享|袋鼠云数栈离线开发平台在小文件治理上的探索实践之路
- 【Android FFMPEG 开发】Android 中使用 FFMPEG 对 MP3 文件进行混音操作
- 一个真实的 SAP 标准 UI5 应用的扩展开发项目(Extension Project)分享 - UI5 界面上新增订单创建者字段
- 分享一个Java开发都用得到的密码摘要算法包
- 【SpringBoot技术专题】「实战指南」从实战开发角度去分析操作RestTemplate的应用及使用技巧
- IOS网络编程—(数据请求+slider)将网络上的大文件下载到本地,并打印其进度详解手机开发
- 获取手机端验证码详解手机开发
- android的RadioGroup讲解详解手机开发
- android放大镜效果实现详解手机开发
- iOS—-友盟分享完善版本详解手机开发
- iOS开发-友盟分享使用(2)详解手机开发
- 分享详解手机开发
- app的登录方式详细介绍详解手机开发
- 环境linux下实现快速搭建php开发环境(linux下搭建php)
- php开发web服务原理详解编程语言
- 基于Ruby和MySQL的Web应用开发(rubymysql)
- 驱动开发Linux下QT USB驱动的经验分享(linuxqtusb)
- 管理开发舒心,Linux系统资源管理之道(linux系统资源)
- 东西Linux开发助力:构建你的技术基础(linux能开发什么)
- 揭开Linux多元化开发之谜(linux的分支)
- 拓展业务视野:Oracle开发成功案例分享(oracle开发案例)
- 25个关键字:Mysql工具类分享:让开发更便捷的数据库连接工具。(mysql工具类)
- 开发高质量Linux摄像头驱动的技巧和经验分享(linux摄像头驱动开发)
- MSC(中文全称:米鼠即时通讯系统),全程采用JAVA开发,是国内第一款可同时支持Windows(兼容Vista)、Linux、Unix操作系统的IM软件
- MSSQL 语句编辑技巧 – 提高开发效率(mssql 语句编辑)
- Linux 开发者的宝贵经验分享(linux开发经验)
- PHP中MVC模式的模板引擎开发经验分享
- 选择PHP作为网站开发语言的原因分享
- 初步介绍PHP扩展开发经验分享
- 页面间隔半秒钟更新时间Asp.net使用Comet开发http长连接示例分享
- IOS开发代码分享之设置UISearchBar的背景颜色