社区首页 >问答首页 >如何在Android中实现绘图应用程序的橡皮擦

如何在Android中实现绘图应用程序的橡皮擦
EN

Stack Overflow用户
提问于 2012-02-13 01:27:15
回答 2查看 5K关注 0票数 1

我整个晚上都在寻找一些方法来实现我的绘图应用程序的橡皮擦功能。最常见的答案是简单地在中绘制背景颜色或图像,但这种解决方案不适用于我的应用程序,因为我实现了多个图层(Gimp/Photoshop样式)。

用户应该能够使用画笔工具在任意多个图层中绘制一条直线(我的绘图视图的onDraw方法在每个图层上绘制layer0...layerX )。然后,如果他们选择橡皮擦工具,它应该会使当前图层的任何区域变得透明。

我似乎找不到合适的内置类/函数,也不确定如何自己编写它。我试着做一些像这样的事情

代码语言:javascript
代码运行次数:0
复制
Paint paint = new Paint();
paint.setAlpha(0);

然后使用该Paint对象进行绘制,但这只会绘制一条“不可见”的线。

我还尝试使用

代码语言:javascript
代码运行次数:0
复制
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));

但这似乎是正常的,没有效果。我可能没有正确地使用它,但Android文档并没有对它的功能进行清晰的描述。我只是碰巧在一些修改位图的例子中看到了它。

我可以提供所需的代码,我只是不确定什么将有助于解决我的问题。被指出正确的方向将是最大的帮助,因为我在谷歌没有成功。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-09 01:15:32

你可以在这个链接上找到橡皮擦功能的实现,创建新的画布,画笔功能和保存功能:

create android drawing interface

这是一个非常好的教程,在android上使用运动事件制作绘图应用程序。

票数 2
EN

Stack Overflow用户

发布于 2012-02-13 07:23:43

查看此演示:FingerPaint.java

您将了解如何实现画布的橡皮擦。

好好享受吧。:)

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

https://stackoverflow.com/questions/9254528

复制
相关文章
按enter键表单自动提交
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
逝兮诚
2019/10/30
1.7K0
如何使用 Selenium 在 HTML 文本输入中模拟按 Enter 键?
Selenium是 Python 中可用的内置模块,允许用户制作自动化套件和测试。我们可以使用 selenium 构建代码或脚本以在 Web 浏览器中自动执行任务。Selenium 用于通过自动化测试软件。此外,程序员可以使用 selenium 为软件或应用程序创建自动化测试用例。
海拥
2021/12/20
8.3K0
vim删除多行以及插入多行
在normal模式下输入10a=就可以输入十个=,此方式不止针对字符,对于字符串也是适用的
全栈程序员站长
2022/09/07
2.7K0
Tcplayer web进入全屏后阻止默认按enter和space键退出全屏
当前Tcplayer SDK进入全屏后按enter或space键是可以退出全屏的, 官方体验demo,那如果不想使用这两个键来退出全屏怎么阻止呢。
良人
2022/02/14
2.4K0
Qt Designer基本控件介绍——Input Widgets(输入小部件)
Combo Box :组合框。是一个集按钮和下拉选项于一体的控件,也称做下拉列表框 常用方法: count() :返回下拉选项集合中的数目 currentText() :返回选中选项的文本 itemText(i) :获取索引为 i 的 item 的选项文本 currentIndex():返回选中项的索引 setItemText(int index,text) :改变序列号为 index 的文本 ---- 信号: Activated :当用户选中一个下拉选项时发射该信号 currentIndexChanged
Elsa_阿尼
2021/07/12
6.3K0
Qt Designer基本控件介绍——Input Widgets(输入小部件)
LaTex中插入大括号的多行公式
由于近期要发表论文,不得不恶补LaTex。现在需要插入带大括号的多行公式,效果如下:
狼啸风云
2020/07/23
19.9K1
按回车键自动跳到下一个文本框
文本框如下: <table id="table"> <tr> <td><input type="text" style="width: 150px" id="text6" on
用户1141560
2017/12/26
1.6K0
在shell脚本中添加暂停,按任意键继续
分析一个复杂脚本的时候,有时候需要加点暂停,分段来看,比较清晰 于是参考了一些实现,目前自己用的是这样子的 #add for debug by zqb function get_char() {   SAVEDSTTY=`stty -g`   stty -echo   stty cbreak   dd if=/dev/tty bs=1 count=1 2> /dev/null   stty -raw   stty echo   stty $SAVEDSTTY } enable_pause=1 funct
zqb_all
2019/12/27
6.9K0
java中的多行注释快捷键_eclipse多行注释快捷键「建议收藏」
eclipse为多行添加注释是有快捷方式可用的,了解了这个快捷方式相信很多网友都会大大提高编码效率,其实同时为多行添加注释可以分别添加“/* */”和“//”样式的,样式不同快捷键也会不同,下面我们可以一起看看具体的添加注释方法。
全栈程序员站长
2022/09/21
3.3K0
java中的多行注释快捷键_eclipse多行注释快捷键「建议收藏」
python GUI界面设计的那些事
我们知道早期的电脑只能通过命令端输入命令运行,当时能够使用电脑的都是一些比较专业的人,他们需要记住各种各样的命令。比如查看某个路径下有哪些文件,就使用 ls 指令。
叶子陪你玩
2021/04/13
1.1K0
python GUI界面设计的那些事
C#学习笔记—— 常用控件说明及其属性、事件
1、 窗体 的属性 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 (2) WindowState属性: 用来获取或设置窗体的窗口状态。 取值有三种: Normal (窗体正常显示)、 Minimized(窗体以最小化形式显示)和 Maximized(窗体以最大化形式显示)。 (3)StartPosition属性:用来获取或设置运行时窗体的起始位置。其取值及含义如表9-1 所示。默认的起始位置是WindowsDefaultLocation。 (4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。 (5)Width属性:用来获取或设置窗体的宽度。 (6)Height属性:用来获取或设置窗体的高度。 (7)Left属性:用来获取或设置窗体的左边缘的x坐标(以像素为单位)。 (8)Top属性:用来获取或设置窗体的上边缘的y坐标(以像素为单位)。 (9)ControlBox属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。值为true时将显示控制框,值为false时不显示控制框。 (10)MaximizeBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。值为 true时显示最大化按钮,值为false时不显示最大化按钮。 (11)MinimizeBox 属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。值为 true时显示最小化按钮,值为false时不显示最小化按钮。 (12)AcceptButton 属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按 Enter 键时就相当于单击了窗体上的该按钮。 (13)CancelButton 属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按 Esc 键时就相当于单击了窗体上的该按钮。 (14)Modal 属性:该属性用来设置窗体是否为有模式显示窗体。如果有模式地显示该窗体,该属性值为true;否则为 false。当有模式地显示窗体时,只能对模式窗体上的对象进行输入。必须隐藏或关闭模式窗体(通常是响应某个用户操作),然后才能对另一窗体进行输入。有模式显示的窗体通常用做应用程序中的对话框。 (15)ActiveControl属性:用来获取或设置容器控件中的活动控件。窗体也是一种容器控件。 (16)ActiveMdiChild属性:用来获取多文档界面(MDI)的当前活动子窗口。 (17)AutoScroll 属性:用来获取或设置一个值,该值指示窗体是否实现自动滚动。如果此属性值设置为true,则当任何控件位于窗体工作区之外时,会在该窗体上显示滚动条。另外当自动滚动打开时,窗体的工作区自动滚动,以使具有输入焦点的控件可见。 (18)BackColor属性:用来获取或设置窗体的背景色。 (19)BackgroundImage属性:用来获取或设置窗体的背景图像。 (20)Enabled 属性:用来获取或设置一个值,该值指示控件是否可以对用户交互作出响应。如果控件可以对用户交互作出响应,则为 true;否则为false。默认值为true。 (21)Font属性:用来获取或设置控件显示的文本的字体。 (22)ForeColor属性:用来获取或设置控件的前景色。 (23)IsMdiChild属性:获取一个值,该值指示该窗体是否为多文档界面(MDI)子窗体。值为 true时,是子窗体,值为false时,不是子窗体。 (24)IsMdiContainer 属性:获取或设置一个值,该值指示窗体是否为多文档界面(MDI)中的子窗体的容器。值为true时,是子窗体的容器,值为false时,不是子窗体的容器。 (25)KeyPreview属性:用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体是否将接收该事件。值为true时,窗体将接收按键事件,值为false时,窗体不接收按键事件。 (26)MdiChildren属性:数组属性。数组中的每个元素表示以此窗体作为父级的多文档界面(MDI)子窗体。 (27)MdiParent属性:用来获取或设置此窗体的当前多文档界面(MDI)父窗体。 (28)ShowInTaskbar属性:用来获取或设置一个值,该值指示是否在Windows任务栏中显示窗体。 (29)Visible属性:用于获取或设置一个值,该值指示是否显示该窗体或控件。值为true 时显示窗体或控件,为 false时不显示。 (30)Capture属性:如果该属性值为true,则鼠标就会被限定只由此控件响应,不管鼠标是否在此控件的范围内。 2、常用的方法 下面介绍一些窗体的最常用方法。 (1)Show方法:该方法的作用是让窗体显示出来,其调用格式为: 窗体名.
vv彭
2022/05/10
9.9K0
C#学习笔记——回车Enter使输入焦点自动跳到下一个TextBox
在录入界面中,用户往往需要按回车键时光标自动跳入下一个文本框,以方便录入操作。在C#中实现该功能有多种方法,以下是小编收集的不使用TAB键,而直接用回车键将光标转到下一个文本框的实现方法。
vv彭
2021/09/07
6.5K0
IOS UITextField文本框控件
import UIKit class ViewController:UIViewController, UITextFieldDelegate { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view,typically from a nib. let rect = CGRect(x:60, y:80, width:200, height:30) l
用户5760343
2019/07/08
1.9K0
IOS UITextField文本框控件
Silverlight:用Enter键替换Tab键切换焦点
业务系统中,很多录入人员习惯于用Enter键来代替Tab键切换控件焦点(虽然我个人并不觉得这样录入速度会变得有多高效,呵呵),有需求了,自然就得想办法满足。 思路:为了更灵活的控件焦点顺序,我决定用TabIndex来做文章,每个输入控件按下回车时,找到下一个比当前控件TabIndex更大且最接近的控件,然后focus(). XAML界面部分: <UserControl x:Class="tab_key_test.MainPage" xmlns="http://schemas.microsoft.co
菩提树下的杨过
2018/01/24
2K0
【学习】如何快速批量删除Excel单元格中的“换行符”
在Excel单元格中按Alt+Enter就会进行换行,就像在Word中按回车键一样。如果许多单元格中都包含这样的“换行符”,现在要将其全部删除掉,让这些单元格中的内容都变成一行显示,该如何操作呢? 方法一:取消自动换行 在Excel单元格中按快捷键Alt+Enter进行换行时,该单元格就被设置成了“自动换行”,如果要将这些单元格中的“自动换行”效果取消,也就是删除“换行符”,方法如下: 1.Excel 2003操作方法:选择这些需要调整的单元格,鼠标右击,在弹出的快捷菜单中
小莹莹
2018/04/18
19.1K0
Windows 8.1 应用再出发 - 几种常用控件
本篇为大家简单介绍Windows 商店应用中控件的用法,为方便讲解,我们在文本控件和按钮控件这两类中分别挑选有代表性的控件进行详细说明。 1. 文本控件 (1) TextBlock     TextBlock是最常用的文本显示控件,重点关注以下属性: CharacterSpacing  字符之前的统一间距,间距 = 字体大小 / 1000。默认为0,正值增进跟踪和放宽字符间距。负值减少跟踪和收紧字符调间距。 IsColorFontEnabled  布尔值,确定颜色标志符号是否以彩色显示。如果颜色标志符号以彩
Shao Meng
2018/04/27
2.3K0
python中的__enter__ __
我们前面文章介绍了迭代器和可迭代对象,这次介绍python的上下文管理。在python中实现了__enter__和__exit__方法,即支持上下文管理器协议。上下文管理器就是支持上下文管理器协议的对象,它是为了with而生。当with语句在开始运行时,会在上下文管理器对象上调用 __enter__ 方法。with语句运行结束后,会在上下文管理器对象上调用 __exit__ 方法 with的语法:
py3study
2020/01/19
2.6K0
pycharm注释多行_eclipse多行注释快捷键
3、Pycharm批量更改某一个变量名 举个例子,此时我想批量更改 train_feature_k3b这个变量,此时选中这个变量,点击鼠标右键
全栈程序员站长
2022/09/25
2.9K0
pycharm注释多行_eclipse多行注释快捷键
在asp.net中为Web用户控件添加属性和事件
在90年代初,Microsoft为Web程序员提供的ActiveServerPages(ASP运维
Java架构师必看
2020/10/15
2.4K0
点击加载更多

相似问题

在asp.net登录控件中按enter键登录

21

asp.net -在文本框中按ENTER键并提交表单

14

如何在PHP数据库中按enter键插入换行符?

24

如何防止Enter键在多行文本框中换行?

229

标记内的换行符(按enter键)?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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