问题标签 [android-view-invalidate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何让 View.invalidate 在 Click Listener 中工作
我想在 ClickListener 的 for 循环中多次重绘 customview。但是,视图仅在 ClickListener 代码完成时刷新一次,而不是在 for 循环内。
这是相关的代码片段
这是customview(TouchEventView)的onDraw方法
除了在 ClickListener 进程结束时,vw.invalidate() 和 vw.postInvalidate() 都不起作用。
如何在 for 循环中强制重绘屏幕?
android - 如何在Android中调用CustomView的onDraw(Canvas canvas)函数?
我生成一个椭圆,并尝试根据您可以在下面看到的 sweepAngle_speed 重塑形状。这个 sweepAngle_speed 来自 MainActivity.java。在 MainActivity.java 中,我创建了一个 seekbar,并在 seekbar 的值和 sweepAngle_speed 之间使用算法,因此我预计椭圆中的填充区域会发生变化。onDraw 函数不是直接调用的,所以我在我创建的 getLog 函数中使用了 invalidate 函数。但是我无论如何都不能调用 onDraw 函数。当我运行代码时,系统直接调用了 3 次 onDraw 函数,但是当我更改 seekbar 值时,无论如何我都没有调用 onDraw 函数。我的第一个问题是系统如何直接调用 onDraw 函数?第二个是我如何在系统工作期间调用 onDraw 函数。谢谢。
自定义视图.java
}
java - 使用 invalidate() 只添加一次贴纸
单击第二个标签时,它应该单独显示第二个标签(第一个应该被删除)。点击贴纸1(黄色)时的当前输出,它在屏幕上显示贴纸1,当点击贴纸2(红色)时,前一个贴纸仍在屏幕上(我不想要)输出必须是贴纸2我有尝试实现一个 for 循环,但它不起作用。
完整的活动源代码
android - 如何让用户只在Android中的指定区域内绘制?
在我的 Android 项目中,我有一个用户可以绘制的 drawView。
它使用 x 坐标、y 坐标和Bitmap.setPixel
.
体型示例:https ://ibb.co/KDNXhhX 。
我想要做的是,该用户可以在任何地方绘图,但是在笔向上移动后(这意味着ACTION_UP
),身体外的所有绘图都会消失。换句话说,它只将平局保持在体内。
我已经检查了invalidate()
来自 View 的文档,但它只会使 Rect 或 drawable 无效。我怎样才能做到这一点?