SWT中显示图片并随窗口改变其大小
2013-04-04 23:46
239 查看
在SWT中,用setBackgroundImage函数显示背景图片是用平铺的方式,并且不能改变其大小。为了可以显示图片,并且使图片随着View大小的改变而变化,这可以选择控件的addPaintListener方法,通过添加这个事件来画图像。
首先,获取image,获取org.eclipse.swt.widgets.Image的方式有两种:
1、使用绝对路径
Image image = new Image(Display.getDefault(),"D:/1.jpg");
2、使用相对路径
ImageDescriptor imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(pluginId, "SystemData/1.jpg");
Image image = imageDescriptor.createImage();
//SystemData/1.jpg:指的在工程的根目录下的SystemData文件夹内的1.jpg
然后,可以将这个jpg的图片在org.eclipse.swt.widgets.Canvas中绘出,或者是org.eclipse.swt.widgets.Label中绘出。实验之后,发现在Label中绘制时,其大小随View窗体改变的时候,会出现图片只有边缘改变,而其他部分不会改变的情况。所以这是我用的的Canvas。
在处理图片闪烁时,将canvas设置为了SWT.DOUBLE_BUFFERED样式,则这样就可以使用双缓冲区,消除在图片在redraw时的闪烁。(双缓冲区的其中一种实现机制:首先把背景色和其他内容保存在一幅图形当中,当收到重新绘图的时候,将整个图形设置到需要重画的区域)
p.s. 小菜一枚,如果有什么不对的地方,请指出来啊。
p.s. 恭喜Bunny马上就要结束2的生活,森日快乐~
首先,获取image,获取org.eclipse.swt.widgets.Image的方式有两种:
1、使用绝对路径
Image image = new Image(Display.getDefault(),"D:/1.jpg");
2、使用相对路径
ImageDescriptor imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(pluginId, "SystemData/1.jpg");
Image image = imageDescriptor.createImage();
//SystemData/1.jpg:指的在工程的根目录下的SystemData文件夹内的1.jpg
然后,可以将这个jpg的图片在org.eclipse.swt.widgets.Canvas中绘出,或者是org.eclipse.swt.widgets.Label中绘出。实验之后,发现在Label中绘制时,其大小随View窗体改变的时候,会出现图片只有边缘改变,而其他部分不会改变的情况。所以这是我用的的Canvas。
final int imgWidth = image.getBounds().width; final int imgHeight = image.getBounds().height; Canvas canvas = new Canvas(parent, SWT.DOUBLE_BUFFERED); canvas.addPaintListener(new PaintListener() { @Override public void paintControl(PaintEvent event) { // TODO Auto-generated method stub event.gc.drawImage(image, 0, 0, imgWidth, imgHeight, 0, 0, event.width, event.height); } });
在处理图片闪烁时,将canvas设置为了SWT.DOUBLE_BUFFERED样式,则这样就可以使用双缓冲区,消除在图片在redraw时的闪烁。(双缓冲区的其中一种实现机制:首先把背景色和其他内容保存在一幅图形当中,当收到重新绘图的时候,将整个图形设置到需要重画的区域)
p.s. 小菜一枚,如果有什么不对的地方,请指出来啊。
p.s. 恭喜Bunny马上就要结束2的生活,森日快乐~
相关文章推荐
- 开始在ONdraw里面画图显示不出来,改变窗口大小才显示
- 窗口大小改变时,显示内容的处理(正投影情况)
- android中的CheckBox改变背景图片后图片显示大小不正确的问题
- 在SWT中显示图片并调整大小
- jQuery动态改变图片显示大小(修改版)
- 轮播图片如何随着窗口的大小改变而改变
- css设置多个img为固定高度显示,不受图片实际尺寸影响而改变大小
- JS实现显示倒影的图片展示特效之改变图片显示大小
- jQuery动态改变图片显示大小(修改版)的实现思路及代码
- jQuery动态改变图片显示大小(修改)
- 当浏览器窗口大小改变时,设置显示内容的高度
- javascript: 改变和控制显示的图片大小(保持比例,同时可限制高宽)
- c# winform下图片二进制存储-改变大小-显示
- 背景图片随窗口大小改变自适应
- javascript: 改变和控制显示的图片大小
- MFC动态改变对话框窗口大小和显示位置
- 无论窗口如何改变大小,如何让块元素始终相对当前窗口位于水平,垂直居中显示?
- Android 自定义RelativeLayout活动主窗口大小改变 得到软键盘的显示和隐藏
- [转]QLabel显示图片自适应窗口控件大小
- jQuery动态改变图片显示大小(修改版)