截屏代码


截取应用 

private void getScreen()
{
    View content = findViewById(R.id.layoutroot);
    Bitmap bitmap = content.getDrawingCache();
    File file = new File( Environment.getExternalStorageDirectory() + "/test.png");
    try 
    {
        file.createNewFile();
        FileOutputStream ostream = new FileOutputStream(file);
        bitmap.compress(CompressFormat.PNG, 100, ostream);
        ostream.close();
    } 
    catch (Exception e) 
    {
        e.printStackTrace();
    }
}

   


<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

view 写入图片

public Bitmap screenShot(View view) {
    Bitmap bitmap = Bitmap.createBitmap(view.getWidth(),
            view.getHeight(), Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    view.draw(canvas);
    return bitmap;
}



Bitmap bitmap = Bitmap.createBitmap(width, height,Config.ARGB_8888);//创建一个你需要尺寸的Bitmap
Canvas canvas = new Canvas(bitmap);//用这个Bitmap生成一个Canvas,然后canvas就会把内容绘制到上面这个bitmap中

Paint paint = new Paint();//定义一个画笔
paint.setColor(Color.RED);//红色画笔


canvas.drawText(text, x, y , paint);//绘制文案

//绘制Logo
Bitmap logo = xxx;//获得你的Logobitmap
canvas.drawBitmap(logo, x,y, logo.getWidth(), logo.getHeight());



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值