透明皮肤控件设计系列(七):界面设计中的一些算法和技巧
2 Comments 2013-08-18 admin
除了第二讲里面的平均颜色之外,实际上一个真正成熟的界面涉及的东西还是很多的。
一、九宫格算法
例如按钮,假如说,图片使用拉伸方式的话,按钮变大后会很难看,这种情况下一般使用九宫格算法。
所谓九宫格算法,就是把图片分成1~9个区域,针对不同区域作不同处理:
A———B———C——–D
| | | |
|1不变 | 2只变宽 | 3不变 |
E——LtPt—–RTPt——–F
| | | |
|4只变高|5全部变 |6只变高|
G——LBPt—–RBPt——H
| | | |
| 7不变 |8只变宽 | 9不变 |
I——–J———-K———L
其实就是保持可能会产生锯齿的区域不变。
类似的算法还有三分法,例如滚动条一般就是使用这种方式。实际上,使用三分、六分还是九分,要视乎你的图片而定。所以一个好的界面,除了界面库要处理恰当,所使用的图片素材也是非常重要的。好的界面=好的界面设计人员+好的美工。
二、带滚动条的控件
例如TMemo,TListView之类,其实它们有点类似“分层”的。也就是说,滚动的时候,内容也会往上滚动,如果不处理,背景和内容都会发生重叠。所以要拦截各种消息。同时注意对于键盘和鼠标事件要禁止暂时刷新:
procedure TAQSkinMemo.WMHSCROLL(var Message: TWMHScroll);
begin
if FTransparent then SendMessage(Handle, WM_SETREDRAW, 0, 0);
inherited;
if FTransparent then SendMessage(Handle, WM_SETREDRAW, 1, 0);
if FTransparent then PaintClient;
UpDateScrollRange;
end;
分类:界面设计
2 Comments 发表评论
馆主,能分想下你的角圆按钮实现方法吗?
馆主,能不能给个文章中BUTTON的DEMO,学习下。
发表评论
XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
TrackBack URL | RSS feed for comments on this post.