java - 使用 invalidate() 只添加一次贴纸
问题描述
单击第二个标签时,它应该单独显示第二个标签(第一个应该被删除)。点击贴纸1(黄色)时的当前输出,它在屏幕上显示贴纸1,当点击贴纸2(红色)时,前一个贴纸仍在屏幕上(我不想要)输出必须是贴纸2我有尝试实现一个 for 循环,但它不起作用。 完整的活动源代码
public void addSticker(final Sticker sticker) {
if (sticker == null) {
Log.e(TAG, "Sticker to be added is null!");
return;
}
float offsetX = (getWidth() - sticker.getWidth());
float offsetY = (getHeight() - sticker.getHeight());
sticker.getMatrix().postTranslate(offsetX, offsetY);
float scaleFactor;
if (getWidth() < getHeight()) {
scaleFactor = (float) getWidth() / sticker.getDrawable().getIntrinsicWidth();
}
else {
scaleFactor = (float) getHeight() / sticker.getDrawable().getIntrinsicHeight();
}
sticker.getMatrix().postScale(scaleFactor, scaleFactor, getWidth(), getHeight());
mHandlingSticker = sticker;
mStickers.add(sticker);
invalidate();
}
解决方案
推荐阅读
- python - Tkinter 窗口后端编码
- laravel - 此代码在上传时可以正常工作,但是更新时调用数组上的成员函数getClientOriginalName()
- c# - 在 C# 中使用完全外连接合并 2 个数据表
- node.js - 带有 socket.io 的 ionic v3 提供了不受支持的协议版本
- download - JMeter需要很长时间才能下载资源
- python - 未找到任何参数的“send_form”反向。尝试了 1 种模式:[u'app/send_message/(?P
\\d+)/$'] - apache - 如何通过 DMZ 中的 1 个服务器转发 HTTP/HTTPS 流量
- azure-data-factory-2 - 如何将 LinkedService 名称传递给 ADF 管道中的数据流?
- python - 如何在 Python setup.py 中更改用于构建 C++ 扩展模块的链接器命令?
- java - 处理对 java.lang.Number 子类的操作的通用泛型方法