Android如何在activity中设置自定义view中的数据 5C

我在一个自定义的view中设置了一个循环执行的动画,然后在activity中使用这个view,希望通过
点击能够停止动画的执行,首先我尝试在view中提供有一个public的方法,在activity中
点击的时候,通过这个方法调用动画的cancel()方法来结束,但是没有成功,之后我尝试在
view中设置一个boolean值,通过这个值判断动画是否应该执行,同时提供public void set
方法来设置这个值,并通过invalidate()来重绘整个view,但是在Activity中调用这个方法之后
还是没有任何效果!请大神来看看是怎么回事!

8个回答

你的自定义view和Activity绑定了吗?是怎么绑定的?

ffa_ijj
细嗅v蔷薇 回复tiankun576162552: 这一块很是奇怪,我尝试在view里面结束动画,刚开始是实现了的,但是后面又不能结束了,而且我在fragment中结束动画的方法,在模拟器上市可以的,但是在手机上就没办法执行
一年多之前 回复
tiankun576162552
tiankun576162552 回复ffa_ijj: 你停动画的方法stopAnimation怎么注释掉了?在这个方法里加上标识判断一下,然后在你点击的时候调用应该可以你试试
一年多之前 回复
ffa_ijj
细嗅v蔷薇 回复tiankun576162552: 就是我希望这个动画在我点击之前是无线循环的,点击之后就停止,这样不能做到吗?
一年多之前 回复
ffa_ijj
细嗅v蔷薇 回复tiankun576162552: 嗯嗯,是的,我是定义了一个无限循环的动画,这样不可以吗?但是如果我想要实现这样的效果应该怎么做呢?
一年多之前 回复
ffa_ijj
细嗅v蔷薇 嗯嗯,是的,我是定义了一个无限循环的动画,这样不可以吗?但是如果我想要实现这样的效果应该怎么做呢?
一年多之前 回复
tiankun576162552
tiankun576162552 回复ffa_ijj: 看了你的代码,因为你的动画是无限循环播放,没有停止,所以定义的标识没起作用。由于这两行:animator.setRepeatCount(ValueAnimator.INFINITE); animator.setRepeatMode(ValueAnimator.RESTART);
一年多之前 回复
ffa_ijj
细嗅v蔷薇 回复tiankun576162552: 我给您发过去了
一年多之前 回复
ffa_ijj
细嗅v蔷薇 嗯嗯,好的,麻烦您看一下
一年多之前 回复
tiankun576162552
tiankun576162552 回复ffa_ijj: 方便的话发一下你的代码看看,我的邮箱:576162552@qq.com
一年多之前 回复
ffa_ijj
细嗅v蔷薇 我在fragment中使用的,就是通过findviewbyid来绑定的
一年多之前 回复

在view中添加自定义的监听,就可以实现

用handle控制循环开始和终止

在MainActivity中获取自定义的标题栏,并且为返回按钮添加自定义点击事件:

在activity_main.xml中引入自定义的标题栏

继承view 三个构造方法

ffa_ijj
细嗅v蔷薇 这个继承了的
一年多之前 回复

最简单的方式:
添加全局的变量,在Acitvity中改变状态,在自定义view中实现状态的使用。

如:创建一个SystemConsts类,该类中申明一个public static boolean flag = true;
在Activity点击事件中,SystemConsts.flag = false;

在自定义view中 ,每次动画执行时
if(flag){
....
}

如上,可轻松实现!望采纳!

ffa_ijj
细嗅v蔷薇 我尝试用这种方式,也没有实现啊
一年多之前 回复

可以自定义一个interface,添加自己的view的时候给view中set一个接口的对象,在你的view中触发这个对象,在activity中接收回调就可以做对应的操作了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!