Zinc 6.0中的 demo/med/ 中自带一个RoundCornerButton控件,但是她有“残角”,特别是按钮较大时就更明显了。如果窗口的背景色和按钮的背景色不一样时候,这时候就特别地难看。
偶的按钮是直接放在Bitmap上的,刚开始偶想通过用MODE_XOR方式重画 “残角”区域,不过未成功。后来偶又想通过创建透明Bitmap来“消残”,结果还是无功而返,就这样我就把这个问题扔一旁了。两天后,偶产生了一个想法:为什么不用被按钮覆盖掉的区域的Bimap来重画按钮的背景呢?经过一顿代码的修改,这个想法还真的管用,“残角”被干掉了。
由于按钮后面的Bitmap是经常变动的,想做到按钮仍然没有“残角”,就得在按钮后面的Bitmap改变后,重新EventManager()->Put(S_REDISPLAY)给按钮,让其重画!