当前位置:  编程技术>移动开发
本页文章导读:
    ▪拖动图片成效        拖动图片效果 对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;
        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的效果相同。



    
[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类工作很难去结合语音这部分与其他部分,开销委实够呛,或是单独处理,再者就是不去碰了。

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3