BaiFenZhiSan
丶百分之三丶
2016-04-26 13:18
采纳率: 100%
浏览 1.4k

本人小白问个android的问题

大概是这样的在一个按钮的onclick里面写了个这个
for(int i = 0;i<10;i++){
控件.layout(控件.getLeft()+1,控件.getTop()+1,控件.getRight()-1,控件.getBottom()-1);
控件.invalidate();
log(”*****,”~~~“);
延时;
}
logcat里是显示了十次,
但界面上为什么看起来还是只绘制最后一次移动了啊?
对不起,本人新人并没有币可以悬赏,抱歉。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • danielinbiti
    danielinbiti 2016-04-26 13:48
    已采纳
     10次太快了,眼睛看不出来
     控件.invalidate();中,计算dirty重绘区域是同步方式,但最后发送重绘请求消息是个异步过程。
    
    点赞 评论
  • weixin_34795569
    weixin_34795569 2016-04-26 14:34

    用一个handler延时循环

    点赞 评论
  • u012721519
    Jimmy.li 2016-04-26 15:48

    做延时操作,你每次都invalidate刷新,自然会覆盖前面的。可以将时间拉长,看出效果。

    点赞 评论
  • baidu_23086307
    好一个大布丁 2016-04-27 12:09

    10次太快了,眼睛看不出来
    控件.invalidate();中,计算dirty重绘区域是同步方式,但最后发送重绘请求消息是个异步过程。

    点赞 评论

相关推荐