`

android 截屏

 
阅读更多

public class PrintScreenActivity extends Activity {

    /** Called when the activity is first created. */

        private static final String TAG = PrintScreenActivity.class.getName();

        private Button btnShort;

        ImageView image = null;

        public static String SCREEN_SHOTS_LOCATION = Environment.getExternalStorageDirectory().getPath();

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.main);     

        image = (ImageView)findViewById(R.id.image);

        btnShort = (Button) findViewById(R.id.btnShots);

        btnShort.setOnClickListener(new Button.OnClickListener() {

                public void onClick(View v) {

                        try {

                                takeScreenShot(getWindow().peekDecorView(),SCREEN_SHOTS_LOCATION);

                        } catch (Exception e) {

                                // TODO Auto-generated catch block

                                Log.e("tag",TAG);

                        }

                }

        });

    }

    public void takeScreenShot(View view) throws Exception {

            takeScreenShot(view, "default");

    }

public void takeScreenShot(View view, String name) throws Exception {

                view.setDrawingCacheEnabled(true);

                view.buildDrawingCache();

                Bitmap bitmap = view.getDrawingCache();

                Canvas canvas = new Canvas(bitmap);

                int w = bitmap.getWidth();

                int h = bitmap.getHeight();

 

                Paint paint = new Paint();

                paint.setColor(Color.YELLOW);

SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

                String time = simple.format(new Date());

                

                canvas.drawText(time, w-w/2, h-h/10, paint);

                canvas.save();

                canvas.restore();

                FileOutputStream fos = null;

                try {

                        File sddir = new File(SCREEN_SHOTS_LOCATION);

                        if (!sddir.exists()) {

                                sddir.mkdirs();

                        }

                        image.setImageBitmap(bitmap);

                        File file = new File(SCREEN_SHOTS_LOCATION +File.separator+"screen" + ".png");

                        

                        fos = new FileOutputStream(file);

                        if (fos != null) {

                                bitmap.compress(Bitmap.CompressFormat.PNG, 90, fos);

                                fos.close();

                        }

                } catch (Exception e) {

                        Log.e("tag",e.getCause().toString());

                        e.printStackTrace();

                }

        }

}

 

 

view.buildDrawingCache()有时不一定起作用,因为如果有硬件加速的话,drawingcache是失效的,所以也可以这样

 

Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);

                Canvas c = new Canvas(bitmap);

                view.dispatchDraw(c);

分享到:
评论

相关推荐

    Android截屏截图的几种方法总结

    Android截屏截图的几种方法总结 Android截屏截图是 Android 开发中常见的需求, Android 截屏截图方法汇总将为您带来多种截屏截图方法的总结,让您更好地掌握 Android 截屏截图技术。在本文中,我们将探讨 ...

    ScreenShotSample_android截屏_DEMO_android截屏demo_

    `ScreenShotSample_android截屏_DEMO_android截屏demo` 提供了一个Android客户端实现截屏服务的示例项目,帮助开发者了解如何在应用程序中集成截屏功能。下面将详细阐述这个DEMO涉及的核心知识点及其实现方法。 1. ...

    android截图,android截屏,adb截屏,

    是android轻量级的截屏工具非常的好用 1.把脚本放入指定目录下面: C:\Users\****\AppData\Local\Android\Sdk\platform-tools 2.把用手机打开想要截图的页面双击运行此脚本,图片就截取到脚本所在的文件夹

    Android截屏示例demo

    本示例“Android截屏示例demo”旨在教你如何通过执行ADB(Android Debug Bridge)shell命令来实现这一功能。ADB是Android开发者的重要工具,它允许你通过命令行与连接的Android设备进行交互,包括安装应用、调试、...

    android截图的demo(手机屏幕截图)

    在Android开发中,屏幕截图是常见的功能之一,用于获取设备当前屏幕显示的内容。这个"android截图的demo(手机屏幕截图)"就是一个展示如何在Android应用中实现这一功能的例子。在这个Demo中,开发者可以学习到如何...

    Android截屏Demo

    这个名为"Android截屏Demo"的项目提供了一个简单的示例,展示了如何通过编程方式实现在Android设备上进行屏幕截图。下面,我们将深入探讨这个Demo所涉及的核心知识点,以及如何实现这个功能。 1. **Android权限**:...

    android截屏实现demo

    在Android平台上,实现截屏功能...总之,Android截屏功能的实现主要涉及对View的操作,包括获取根View、强制绘制、转换为Bitmap以及保存为文件等步骤。了解这些知识点,可以帮助开发者在自己的应用中轻松添加截屏功能。

    Android截屏以及解析截屏程序源代码

    在Android系统中,截屏是用户日常操作的一部分,主要用于记录屏幕内容或分享给他人。而无需root权限的截图方式更是受到广泛欢迎,因为root设备可能会带来安全风险。本主题主要探讨如何通过C++来实现这一功能,并解析...

    android截屏(root)

    在Android操作系统中,"android截屏(root)"是指通过获取设备的root权限来实现更高级别的屏幕截图功能。root是Android系统中的一个概念,它允许用户获取到系统的最高权限,能够访问和修改系统级别的文件,包括那些...

    android截屏保存为图片

    以下是对"android截屏保存为图片"这个主题的详细说明。 **一、Android系统中的截屏原理** 在Android系统中,截屏操作通常涉及到两个关键组件:SurfaceFlinger服务和WindowManager服务。SurfaceFlinger是负责将应用...

    Android截图,圆形,Canvas-IT计算机-毕业设计.zip

    在Android中,截图可以通过多种方式实现,常见的有`View`的`drawToBitmap()`方法,`ViewGroup`的`buildDrawingCache()`和`getDrawingCache()`组合,以及`UiAutomation`类提供的截屏功能。这个Demo可能使用了`View`...

    Android 截屏 和录制屏幕

    在Android平台上,截屏和录制屏幕是两种常见的功能,它们对于开发者调试应用、用户分享屏幕内容或制作教程视频都有重要作用。接下来,我们将深入探讨这两种技术的实现原理。 **一、Android 截屏** 1. **获取屏幕...

    PC端 android 截图软件

    PC端 android 截图软件 ,电脑端可以实时显示,很方便,支持所以的android手机

    安卓截图截屏相关-Android截屏APP工具.zip

    这个名为“安卓截图截屏相关-Android截屏APP工具.zip”的压缩包显然包含了与开发和使用Android平台上的截图应用相关的资源。尽管描述中提到无法保证所有内容都能直接运行,但它为开发者提供了宝贵的参考和学习材料。...

    android 截屏以及对该图进行模糊

    在Android平台上,截屏和对截图进行模糊处理是常见的需求,尤其在开发用户界面或调试应用时。本文将深入探讨如何实现这两个功能,并基于提供的"TestPrintScreenAndBlur"压缩包文件来解释其中的FastBlur算法。 首先...

    android截屏

    本文将围绕“android截屏”这一主题,深入探讨Android平台上的截屏实现方式,以及如何开发一个简单的截屏应用,如标题所提及的"SimpleCutScreen"。 1. **Android截屏API** Android系统提供了多种截屏的方法。对于...

    Android截图

    本文将深入探讨如何在Android系统中实现截图,包括基本的截图方法以及如何扩展截图功能,如摇一摇截图和定时截图。 1. **基础截图方法** - **系统默认截图**: 用户可以通过同时按下电源键和音量下键(部分设备可能...

    android截屏工程代码

    总之,这个"android截屏工程代码"提供了一套基础的Android截屏实现,涵盖了系统级和视图级别的方法,对于学习和实践Android截屏功能非常有帮助。在实际应用中,你可以根据项目的具体需求对其进行扩展和优化。

    安卓截图截屏相关-android截屏上传图片到服务器.rar

    在安卓平台上,截图和截屏是用户日常操作的一部分,开发者也需要处理这些图像数据,例如将它们上传到服务器。本文将详细讲解安卓截图截屏的相关知识,以及如何将截图上传到服务器。 1. 安卓系统截图机制: 安卓...

Global site tag (gtag.js) - Google Analytics