Android手机截屏

对于android手机截屏,据我所知,现在主要有三种方法。

第一种,通过DDMS.

把手机连接上电脑,运行DDMS,选中你的手机设备,然后点击菜单"设备"->"Screen Capture",如图1。
这时你可以看到手机的屏幕截图。
在该窗口,你可以点击"refresh"按钮更新,可以点击"Rotate"按钮旋转截图,也可以点击"Save"按钮保存截图,还可以点击"Copy"按钮把截图保存到粘贴板。开发人员比较适合使用这种方式。
图1:

 


图2:
 

第二种,通过快捷键

我们可以按住back键,然后再按下home键来截取手机的当前屏。截屏的图片会保存在sd卡的Screen Capture文件夹下。
这种方式比较适合一般用户。
注:这种方式在三星的手机上实验成功的,但是在HTC的A9191上实验失败。
 

第三种,使用各类软件

可以下载使用各类软件来进行截屏,比如 Screenshot It 2.03
 


作者:kissazi2 
出处:http://www.cnblogs.com/kissazi2/ 
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/kissazi2/archive/2012/07/04/2575640.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 用Kotlin语言来编写Android手机截屏代码,可以参考以下代码: val bitmap = getScreenShot() val imagePath = saveBitmap(bitmap) fun getScreenShot(): Bitmap { val view = getWindow().getDecorView() view.isDrawingCacheEnabled = true val bitmap = Bitmap.createBitmap(view.getDrawingCache()) view.isDrawingCacheEnabled = false return bitmap } fun saveBitmap(bitmap: Bitmap): String { val fileName = "${System.currentTimeMillis()}.png" val imagePath = getExternalFilesDir(Environment.DIRECTORY_PICTURES).toString() + File.separator + fileName val file = File(imagePath) val outputStream = FileOutputStream(file) bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream) outputStream.flush() outputStream.close() return imagePath } ### 回答2: 在Kotlin中编写Android手机截屏代码可以使用`MediaProjectionManager`和`ImageReader`来实现。以下是一个简单的示例代码: ```kotlin // 在Activity中创建MediaProjectionManager和ImageReader的实例 val mediaProjectionManager = getSystemService(Context.MEDIA_PROJECTION_SERVICE) as MediaProjectionManager val imageReader = ImageReader.newInstance(screenWidth, screenHeight, PixelFormat.RGBA_8888, 2) // 请求屏幕捕获权限 startActivityForResult(mediaProjectionManager.createScreenCaptureIntent(), REQUEST_CODE) // 在onActivityResult中获取屏幕捕获权限 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) { val mediaProjection = mediaProjectionManager.getMediaProjection(resultCode, data) // 创建一个VirtualDisplay来捕获屏幕内容 val virtualDisplay = mediaProjection.createVirtualDisplay( "ScreenCapture", screenWidth, screenHeight, resources.displayMetrics.densityDpi, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, imageReader.surface, null, null ) // 创建一个ImageReader.OnImageAvailableListener来获取截屏图像 imageReader.setOnImageAvailableListener({ reader -> val image = reader.acquireLatestImage() // 处理截屏图像 // ... image?.close() }, null) // 停止屏幕捕获 virtualDisplay.release() mediaProjection.stop() } } ``` 上述代码监听了`ImageReader`的`setOnImageAvailableListener`,当有新的图像可用时会调用该方法,并在其中获取并处理截屏图像。需要注意的是截屏图像的处理在主线程中进行,如果图像处理较为耗时,建议将处理逻辑放在异步线程中执行。 ### 回答3: 在Kotlin中编写Android手机截屏代码可以通过以下步骤: 1. 首先,在AndroidManifest.xml文件中添加必要的权限: ``` <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ``` 2. 创建一个名为ScreenCaptureUtil的辅助类,并添加一个名为captureScreen的静态方法: ```kotlin object ScreenCaptureUtil { @JvmStatic fun captureScreen(activity: Activity): Bitmap? { // 获取屏幕视图 val view = activity.window.decorView view.isDrawingCacheEnabled = true // 创建Bitmap并从视图绘制上面 val screenshot = Bitmap.createBitmap(view.drawingCache) view.isDrawingCacheEnabled = false return screenshot } } ``` 3. 在需要截屏的Activity中调用ScreenCaptureUtil的captureScreen方法: ```kotlin val screenshot = ScreenCaptureUtil.captureScreen(this) if (screenshot != null) { // 将截图写入文件存储 val file = File(Environment.getExternalStorageDirectory().toString() + "/screenshot.jpg") try { val fos = FileOutputStream(file) screenshot.compress(Bitmap.CompressFormat.JPEG, 100, fos) fos.flush() fos.close() // 在本地保存截图 MediaStore.Images.Media.insertImage(contentResolver, file.absolutePath, "screenshot", "screenshot") } catch (e: Exception) { e.printStackTrace() } } ``` 上述代码首先获取当前Activity的视图对象,开启视图的绘图缓存,并将视图绘制到一个新的Bitmap对象中。然后,将Bitmap对象保存为JPEG格式的文件,并将其插入到系统的媒体库中,以便在图库或其他应用程序中查看截图。 请注意,为了确保应用程序具有写入外部存储的权限,还需要在Manifest文件中添加相应的权限。+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值