当前位置: 编程技术>移动开发
本页文章导读:
▪拖动图片成效 拖动图片效果
对acdsee拖动图片效果的实现。开始不懂双缓冲,以为双缓冲可以解决这个问题,结果发现使用了双缓冲没啥效果,请教了高人,然后修改了些代码,完成这个效果。图片是在.........
▪ Matrix种的方法详解 Matrix类的方法详解
Matrix的操作,总共分为translate(平移),rotate(旋转),scale(缩放)和skew(倾斜)四种,每一种变换在Android的API里都提供了set, post和pre三种操作方式,除了translate,其他.........
▪ 2012/六/25 2012/6/25
Sensys2011的一篇关于Mood预测文章:Can Your Smartphone Infer Your Mood?出发点简单易懂,data on mobile device->mood创新点:大粒度划分data种类,social interaction & daily activities。这是抽象层.........
[1]拖动图片成效
来源: 互联网 发布时间: 2014-02-18
拖动图片效果
对acdsee拖动图片效果的实现。开始不懂双缓冲,以为双缓冲可以解决这个问题,结果发现使用了双缓冲没啥效果,请教了高人,然后修改了些代码,完成这个效果。
图片是在pictureBox1里。
说说思路,在鼠标点下时创建一个bitmap,currentMap,用它来存放当前图像。鼠标移动时,根据鼠标位置画图,最后,鼠标up时,重新画图
=====================================================================
C#关于picturebox的用法
要在运行时显示或替换图片,可利用函数 LoadPicture 来设置 Picture 属性。提供图片文件名和可选路径名,由 LoadPicture 函数处理加载和显示图片的细节。
PictureBox 控件具有 AutoSize 属性,当该属性设置为 True 时,PictureBox 能自动调整大小与显示的图片匹配。如果要用 AutoSize 属性设置为 True 的 PictureBox ,设计窗体时就需要特别小心。图片将不考虑窗体上的其它控件而调整大小,这可能导致意想不到的后果,如覆盖其它控件。设计时应通过加载每一幅图片来检查是否有这种现象发生。
使用它作为容器
Picture box 控件也可以用作其它控件的容器。象 Frame 控件一样,可以在 PictureBox 控件上面加上其它控件。这些控件随 PictureBox 移动而移动,其 Top 和 Left 属性是相对 PictureBox 而言,而与窗体无关。
PictureBox 容器的一种普通用法是 ToolBar 或 StatusBar 。可将 Image 控件置于这些容器中作为按钮或添加 Label 显示状态信息。将 Align 属性设置为 Top、Bottom、Left 或 Right ,PictureBox 将粘贴在窗体的边缘。
PictureBox 的其它用法
PictureBox 控件有几种方法使 PictureBox 可用于其它目的。例如:把 PictureBox 看作是一块空画布,可以在它上面画画或打印,或者显示文本、图形,甚至是简单的动画。
Print 方法允许向 PictureBox 控件输出文本,如同向打印机输出一样。有几种字体属性可以控制由 Print 方法输入的文本的特性;Cls 方法可以清除输出。
Circle、Line、Point 和 Pset 方法可以用于在 PictureBox 中画图形。一些属性如 DrawWidth、FillColor 和 FillStyle 允许自定义图形的外观。
用 PaintPicture 方法在图片控件内移动 Image 、并在几幅不同的 Image 间快速变化就能产生动画。
PictureBox 控件的主要作用是为用户显示图片。实际显示图片由 Picture 属性决定。Picture 属性包括被显示的图片的文件名(及可选的路径名)。
注意 窗体对象也具有 Picture 属性,通过设置该属性可直接在窗体背景上显示图片。
对acdsee拖动图片效果的实现。开始不懂双缓冲,以为双缓冲可以解决这个问题,结果发现使用了双缓冲没啥效果,请教了高人,然后修改了些代码,完成这个效果。
图片是在pictureBox1里。
Bitmap currentMap; bool first = true; private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { if (zoom == 0) { if (e.Button == MouseButtons.Left) //dragging mousedrag = e.Location; Image myImage = myMap.GetMap(); currentMap = new Bitmap(myImage); first = false; } } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { if (zoom == 0&&!first) { Image img = new Bitmap(Size.Width, Size.Height); Graphics g = Graphics.FromImage(img); g.Clear(Color.Transparent);//图片移动后显示的底色 g.SmoothingMode = SmoothingMode.HighQuality; //高质量 g.PixelOffsetMode = PixelOffsetMode.HighQuality; //高像素偏移质量 g.DrawImageUnscaled(currentMap, new System.Drawing.Point(e.Location.X - mousedrag.X, e.Location.Y - mousedrag.Y));//在g中移动图片,原图在(0,0)画的,所以直接用new System.Drawing.Point(e.Location.X - mousedrag.X, e.Location.Y - mousedrag.Y)就好。 g.Dispose(); pictureBox1.Image = img;//img是在鼠标这个位置时生成被移动后的暂时的图片 } } private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { if (zoom == 0) { System.Drawing.Point pnt = new System.Drawing.Point(Width / 2 + (mousedrag.X - e.Location.X), Height / 2 + (mousedrag.Y - e.Location.Y)); myMap.Center = myMap.ImageToWorld(pnt); pictureBox1.Image = myMap.GetMap(); first = true; } }
说说思路,在鼠标点下时创建一个bitmap,currentMap,用它来存放当前图像。鼠标移动时,根据鼠标位置画图,最后,鼠标up时,重新画图
=====================================================================
C#关于picturebox的用法
要在运行时显示或替换图片,可利用函数 LoadPicture 来设置 Picture 属性。提供图片文件名和可选路径名,由 LoadPicture 函数处理加载和显示图片的细节。
picMain.Picture = LoadPicture("VANGOGH.BMP")
PictureBox 控件具有 AutoSize 属性,当该属性设置为 True 时,PictureBox 能自动调整大小与显示的图片匹配。如果要用 AutoSize 属性设置为 True 的 PictureBox ,设计窗体时就需要特别小心。图片将不考虑窗体上的其它控件而调整大小,这可能导致意想不到的后果,如覆盖其它控件。设计时应通过加载每一幅图片来检查是否有这种现象发生。
使用它作为容器
Picture box 控件也可以用作其它控件的容器。象 Frame 控件一样,可以在 PictureBox 控件上面加上其它控件。这些控件随 PictureBox 移动而移动,其 Top 和 Left 属性是相对 PictureBox 而言,而与窗体无关。
PictureBox 容器的一种普通用法是 ToolBar 或 StatusBar 。可将 Image 控件置于这些容器中作为按钮或添加 Label 显示状态信息。将 Align 属性设置为 Top、Bottom、Left 或 Right ,PictureBox 将粘贴在窗体的边缘。
PictureBox 的其它用法
PictureBox 控件有几种方法使 PictureBox 可用于其它目的。例如:把 PictureBox 看作是一块空画布,可以在它上面画画或打印,或者显示文本、图形,甚至是简单的动画。
Print 方法允许向 PictureBox 控件输出文本,如同向打印机输出一样。有几种字体属性可以控制由 Print 方法输入的文本的特性;Cls 方法可以清除输出。
Circle、Line、Point 和 Pset 方法可以用于在 PictureBox 中画图形。一些属性如 DrawWidth、FillColor 和 FillStyle 允许自定义图形的外观。
用 PaintPicture 方法在图片控件内移动 Image 、并在几幅不同的 Image 间快速变化就能产生动画。
PictureBox 控件的主要作用是为用户显示图片。实际显示图片由 Picture 属性决定。Picture 属性包括被显示的图片的文件名(及可选的路径名)。
注意 窗体对象也具有 Picture 属性,通过设置该属性可直接在窗体背景上显示图片。
[2] Matrix种的方法详解
来源: 互联网 发布时间: 2014-02-18
Matrix类的方法详解
Matrix的操作,总共分为translate(平移),rotate(旋转),scale(缩放)和skew(倾斜)四种,每一种变换在
Android的API里都提供了set, post和pre三种操作方式,除了translate,其他三种操作都可以指定中心点。
set是直接设置Matrix的值,每次set一次,整个Matrix的数组都会变掉。
post是后乘,当前的矩阵乘以参数给出的矩阵。可以连续多次使用post,来完成所需的整个变换。例如,要将一个图片旋
转30度,然后平移到(200,200)的地方
eg: Matrix m = new Matrix();
m.postRotate(30);
m.postTranslate(200, 200);
pre是前乘,参数给出的矩阵乘以当前的矩阵。所以操作是在当前矩阵的最前面发生的。例如上面的例子,
Matrix m = new Matrix();
m.setTranslate(200, 200);
m.preRotate(30);
这和上面post的效果相同。
Matrix的操作,总共分为translate(平移),rotate(旋转),scale(缩放)和skew(倾斜)四种,每一种变换在
Android的API里都提供了set, post和pre三种操作方式,除了translate,其他三种操作都可以指定中心点。
set是直接设置Matrix的值,每次set一次,整个Matrix的数组都会变掉。
post是后乘,当前的矩阵乘以参数给出的矩阵。可以连续多次使用post,来完成所需的整个变换。例如,要将一个图片旋
转30度,然后平移到(200,200)的地方
eg: Matrix m = new Matrix();
m.postRotate(30);
m.postTranslate(200, 200);
pre是前乘,参数给出的矩阵乘以当前的矩阵。所以操作是在当前矩阵的最前面发生的。例如上面的例子,
Matrix m = new Matrix();
m.setTranslate(200, 200);
m.preRotate(30);
这和上面post的效果相同。
[3] 2012/六/25
来源: 互联网 发布时间: 2014-02-18
2012/6/25
Sensys2011的一篇关于Mood预测文章:Can Your Smartphone Infer Your Mood?
出发点简单易懂,data on mobile device->mood
创新点:大粒度划分data种类,social interaction & daily activities。这是抽象层次,然后去用能获取到的数据逼近这两个概念。
方法没看,很一般。
-------------------------------------分割线-------------------------------------
另一篇还是Sensys2011的:A Speech Analysis Library for Analyzing Affect, Stress,
and Mental Health on Mobile Phones;
乍看之下以为是做语音分析的,实则不然。
最近准备写一篇寻找sensing data之间的关系的文章,之前的工作在对手机Microphone数据几乎没去动,首先是sensing面临的问题都不小,其次在其上的处理的开销与采集面临一样问题。
受到这篇文章的启发想到是不是可以改变sense的粒度,在某些sensing事件上触发这个microphone的采样,这样标签也好处理。
有些时候不得不去寻求适应目标的数据结构改进方案和推进思想,使用mobile device作为载体的sensing类工作很难去结合语音这部分与其他部分,开销委实够呛,或是单独处理,再者就是不去碰了。
Sensys2011的一篇关于Mood预测文章:Can Your Smartphone Infer Your Mood?
出发点简单易懂,data on mobile device->mood
创新点:大粒度划分data种类,social interaction & daily activities。这是抽象层次,然后去用能获取到的数据逼近这两个概念。
方法没看,很一般。
-------------------------------------分割线-------------------------------------
另一篇还是Sensys2011的:A Speech Analysis Library for Analyzing Affect, Stress,
and Mental Health on Mobile Phones;
乍看之下以为是做语音分析的,实则不然。
最近准备写一篇寻找sensing data之间的关系的文章,之前的工作在对手机Microphone数据几乎没去动,首先是sensing面临的问题都不小,其次在其上的处理的开销与采集面临一样问题。
受到这篇文章的启发想到是不是可以改变sense的粒度,在某些sensing事件上触发这个microphone的采样,这样标签也好处理。
有些时候不得不去寻求适应目标的数据结构改进方案和推进思想,使用mobile device作为载体的sensing类工作很难去结合语音这部分与其他部分,开销委实够呛,或是单独处理,再者就是不去碰了。
最新技术文章: