截屏代码

命名空间:

using System.Drawing; 
using System.Drawing.Imaging; 
using System.Windows.Forms;

相关代码

   //获得当前屏幕的分辨率 
            Screen scr = Screen.PrimaryScreen; 
            Rectangle rc = scr.Bounds; 
 int iWidth = rc.Width;  

 int iHeight = rc.Height;

                //创建一个和屏幕一样大的Bitmap 
            Image myImage = new Bitmap(iWidth, iHeight);

                //从一个继承自Image类的对象中创建Graphics对象

            Graphics g = Graphics.FromImage(myImage);

                //抓屏并拷贝到myimage里 
            g.CopyFromScreen(new Point(0, 0), new Point(0, 0), new Size(iWidth, iHeight)); 
                //保存为文件 
            myImage.Save(@"c:/1.jpeg");


本文转自today4king博客园博客,原文链接:http://www.cnblogs.com/jinzhao/archive/2009/10/12/1581752.html,如需转载请自行联系原作者

Android截屏代码一般分为两种方式:使用View截取和使用SurfaceView截取。 使用View截取需要先获取到View的根布局对象,然后通过View的measure和layout方法确定View的大小和位置,再创建对应尺寸的Bitmap,最后调用View的draw方法将View的内容绘制到Bitmap上。 具体代码如下: ``` // 获取View的根布局对象 View view = getWindow().getDecorView().getRootView(); // 创建对应尺寸的Bitmap Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888); // 创建Canvas对象,将内容绘制到Bitmap上 Canvas canvas = new Canvas(bitmap); view.draw(canvas); // 存储Bitmap到文件中 try { FileOutputStream outputStream = new FileOutputStream(new File(Environment.getExternalStorageDirectory().getPath(),"screenshot.png")); bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream); outputStream.flush(); outputStream.close(); } catch (IOException e) { e.printStackTrace(); } ``` 使用SurfaceView截取需要获取到SurfaceView的SurfaceHolder对象,然后通过SurfaceHolder的lockCanvas方法获取到Canvas对象,再将Canvas绘制到对应尺寸的Bitmap上。 具体代码如下: ``` // 获取SurfaceView的SurfaceHolder对象 SurfaceHolder holder = surfaceView.getHolder(); // 创建对应尺寸的Bitmap Bitmap bitmap = Bitmap.createBitmap(surfaceView.getWidth(), surfaceView.getHeight(), Bitmap.Config.ARGB_8888); // 获取Canvas对象,将内容绘制到Bitmap上 Canvas canvas = holder.lockCanvas(); Canvas canvas2 = new Canvas(bitmap); canvas2.drawBitmap(bitmap, 0, 0, null); // 释放SurfaceHolder holder.unlockCanvasAndPost(canvas); // 存储Bitmap到文件中 try { FileOutputStream outputStream = new FileOutputStream(new File(Environment.getExternalStorageDirectory().getPath(),"screenshot.png")); bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream); outputStream.flush(); outputStream.close(); } catch (IOException e) { e.printStackTrace(); } ``` 以上是两种常见的Android截屏代码,使用时需要根据具体需求选择合适的方式进行截屏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值