首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何清除(删除)画布(=位图),生活在surfaceView中?

如何清除(删除)画布(=位图),生活在surfaceView中?
EN

Stack Overflow用户
提问于 2011-04-20 11:19:35
回答 21查看 166K关注 0票数 100

为了制作一个简单的游戏,我使用了一个模板来绘制一个带有位图的画布,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private void doDraw(Canvas canvas) {
    for (int i=0;i<8;i++)
        for (int j=0;j<9;j++)
            for (int k=0;k<7;k++)   {
    canvas.drawBitmap(mBits[allBits[i][j][k]], i*50 -k*7, j*50 -k*7, null); } }

(画布在“SurfaceView ()”中定义/画布位于GameThread中。)

我的第一个问题是如何为新布局清除(或重画)整个画布?

第二,如何只更新屏幕的一部分?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// This is the routine that calls "doDraw":
public void run() {
    while (mRun) {
        Canvas c = null;
        try {
            c = mSurfaceHolder.lockCanvas(null);
            synchronized (mSurfaceHolder) {
                if (mMode == STATE_RUNNING) 
                    updateGame();
                doDraw(c);          }
        } finally {
            if (c != null) {
                mSurfaceHolder.unlockCanvasAndPost(c);  }   }   }       }
EN

回答 21

Stack Overflow用户

回答已采纳

发布于 2011-04-20 12:01:34

如何为新的布局清除(或重画)整个画布(=尝试游戏)?

只需调用Canvas.drawColor(Color.BLACK),或者您想用来清除Canvas的任何颜色。

和:如何只更新屏幕的一部分?

没有这种方法只更新“屏幕的一部分”,因为Android操作系统在更新屏幕时会重新绘制每个像素。但是,当您不清除Canvas上的旧图形时,旧图形仍然在表面上,这可能是“只更新屏幕的一部分”的一种方法。

所以,如果你想“更新屏幕的一部分”,只要避免调用Canvas.drawColor()方法即可。

票数 81
EN

Stack Overflow用户

发布于 2012-06-04 13:37:36

使用PorterDuff clear模式绘制透明颜色可以达到我想要的效果。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR)
票数 285
EN

Stack Overflow用户

发布于 2012-09-04 12:13:43

我在谷歌群组里找到了这个,这对我很有效..

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Paint clearPaint = new Paint();
clearPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
canvas.drawRect(0, 0, width, height, clearPaint); 

这将删除绘图、矩形等,同时保留设置的位图。

票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5729377

复制
相关文章
OkHttp忽略SSL证书验证
自签的SSL证书不受信任,可通过将该证书添加至JDK密钥库,jdk信任自签证书,如果这种方法行不通,可尝试该方式
itze
2022/10/31
3.1K0
JDK信任自签证书
找到cacerts文件所在目录路径,jdk_home(jdk位置路径)/jdk1.8.0_231/jre/lib/security 如果是window系统斜杠是“\”到cacerts文件所在路径位置,Linux就cd到此位置,Windows就cmd到此位置
itze
2022/10/31
1.2K0
JDK信任自签证书
使用mkcert工具生成受信任的本地SSL证书
官方文档:https://github.com/FiloSottile/mkcert#mkcert
宝耶需努力
2022/12/13
4.8K0
使用mkcert工具生成受信任的本地SSL证书
解决iOS 证书不受信任的问题
重新下载AppleWWDRCA并安装。即下载最新的AppleWWDRCA证书,双击安装到“登录”项的钥匙串下;然后再安装你的开发证书或者发布证书就可以了。
特特
2022/03/18
8.3K0
已处理证书链,但是在不受信任提供程序信任的根证书中终止
win7 或以下系统没有 证书管理机构, 用下面方法彻底可以解决 证书不认问题 https://social.technet.microsoft.com/Forums/windowsserve
庞小明
2018/03/09
6.1K0
http请求的方法里怎么设置信任所有ssl证书?(PKIX path building failed)
工作中,有时候需要跨系统调用。这个时候HttpURLConnection,而现在很多网站都是用的是HTTPS。我们知道HTTPS都是有证书的。证书有的是花钱买的,有的没有花钱。这请情况下,有时候,有些https请求,就不是可信任的。
凯哥Java
2019/06/28
2K0
http请求的方法里怎么设置信任所有ssl证书?(PKIX path building failed)
OKHttp使用解析
OKHttp 是一套处理 HTTP 网络请求的依赖库,由 Square 公司设计研发并开源,目前可以在 Java 和 Kotlin 中使用,现在几乎已经占据了所有的网络请求操作。
摸鱼的G
2023/02/22
5140
OkHttp简单使用
OkHttp是一个优秀的网络请求框架,目前主流已经替换httpclient, HttpURLConnection 使用方式;
知识浅谈
2021/10/19
4530
OkHttp使用详解
_当然在开始之前,我们还要先在项目中添加OkHttp的依赖库,至于怎么在AndroidStudio中给项目添加OkHTTP依赖,这里将不再赘述。另外,OkHttp中使用了建造者模式,如果对建造者模式不了解,可以看看这篇博客设计模式之建造者模式_**
做个快乐的码农
2021/12/03
11.8K0
OkHttp使用详解
OkHttp 使用示例
可以用来下载文件,打印header,打印body。string()方法对于小文档的响应来说是个既方便又高效的方法。但是如果一个文档太大(大于1M),就不要使用string()方法了,因为这个方法会把整个文档加载到内存中,在这种情况下可以把body当作流来处理。
代码拾遗
2018/07/24
2.8K0
Tip | OkHttp使用
另外注意OkHttp可以把最后执行的execute()方法换成enqueue(callback), 即调用enqueue()并接收一个框架提供的okhttp3.Callback接口;
凌川江雪
2019/06/11
8020
5大导致"SSL证书不被信任"的原因
前言 今天在这里主要总结一下使用SSL的过程中遇到的坑(注意事项)。SSL是什么东西?(请自行搜索) 我(叫龙君)接触SSL证书已经4年了,算上今年,最开始我认为SSL证书就是拿回来安装上就可以使用的。后来发现其实不然,我们还需要去了解SSL证书信任过程和什么是信任证书链。因为大部分客户都不了解这些,购买了证书后安装使用都会出现”不信任”的问题。下面就是总结常见的5中导致SSL证书不信任的原因。 1.SSL证书不是来自公认的证书颁发机构(CA) 我们但凡了解过SSL证书的朋友都明白,我们自己就可以给自己颁发
小小科
2018/05/03
3.8K0
okhttp的使用介绍
4.2.0:要求 Android 5.0+ (API level 21+) and on Java 8+。
103style
2022/12/19
5230
【OkHttp】OkHttp 源码分析 ( OkHttpClient.Builder 构造器源码分析 )
【OkHttp】OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) 【OkHttp】Android 项目导入 OkHttp ( 配置依赖 | 配置 networkSecurityConfig | 配置 ViewBinding | 代码示例 ) 【OkHttp】OkHttp Get 和 Post 请求 ( 同步 Get 请求 | 异步 Get 请求 | 同步 Post 请求 | 异步 Post 请求 ) 【OkHttp】OkHttp 上传图片 ( 获取 SD 卡动态权限 | 跳转到相册界面选择图片 | 使用 OkHttp 上传图片文件 )
韩曙亮
2023/03/29
8700
okhttp 使用笔记
okhttp是一个网络请求框架,也是目前市面上使用最多的网络框架之一。 之前参与的项目一直没使用,这次刚好有个机会使用OKHttp,记录下。
艳龙
2021/12/16
5170
0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。
有时在安装程序时无法安装出现错误,或者在更新某些系统组件时也遇到同样的错误:“已处理证书链,但是在不受信任提供程序信任的根证书中终止。”。
walterlv
2023/10/23
9.2K0
0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。
移动客户端的证书、策略、信任评估体系
安全体系一直都是公司需要完成基础设施的支撑。安全包括了数据安全、通信安全、操作安全、代码安全等功能。有的组织则提供了一套标准的安全规范和技术标准比如PKI。而操作系统层面则苹果公司通过其提供的Security.framework而android则通过com.java.security框架来提供安全的支撑。
欧阳大哥2013
2018/08/22
8190
OkHttp基础概念解释
最近在整理Android常用第三方框架相关的东西,说道Android的框架,无外乎就是Android开发中常见的网络、图片缓存、数据交互、优化、页面等框架,其中网络作为一个基础部分,我相信大家更多的是使用OkHttp,而在长连接中有Socket和webSocket等,今天给大家总结下OkHttp相关的内容,部分参考网络资源。
xiangzhihong
2020/01/14
2.1K0
OkHttp基础概念解释
点击加载更多

相似问题

具有自动布局功能的自调整大小UICollectionView

121

具有固定间距的UICollectionview自调整大小单元格自动布局

115

UICollectionView单元格自动调整大小

20

UICollectionView自动调整单元格大小

113

使用自动调整大小功能时,UICollectionView单元格不会根据单元格内容调整大小

125
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文