`
52xianmengyu
  • 浏览: 64017 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类

截取手机屏幕成图片保存到sdcard卡当中

阅读更多

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.os.Bundle;
import android.os.Environment;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;

public class PrintScreenDemoActivity extends Activity {
private Button mButton;
private LinearLayout mLayout;
private int mPrintNum;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LayoutInflater inf = this.getLayoutInflater();
mLayout = (LinearLayout)inf.inflate(R.layout.main, null);
setContentView(mLayout);
mButton = (Button)findViewById(R.id.print_btn);
mButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
GetandSaveCurrentImage();
mPrintNum++;
mButton.setText("截屏次数:"+mPrintNum);
}
});
}
private void GetandSaveCurrentImage() 

//1.构建Bitmap 
WindowManager windowManager = getWindowManager(); 
Display display = windowManager.getDefaultDisplay(); 
int w = display.getWidth(); 
int h = display.getHeight(); 

Bitmap Bmp = Bitmap.createBitmap( w, h, Config.ARGB_8888 ); 

//2.获取屏幕 
View decorview = this.getWindow().getDecorView(); 
decorview.setDrawingCacheEnabled(true); 
Bmp = decorview.getDrawingCache(); 
String SavePath = getSDCardPath()+"/PrintScreenDemo/ScreenImage";

//3.保存Bitmap 
try { 
File path = new File(SavePath); 
//文件 
String filepath = SavePath + "/Screen_"+mPrintNum+".png"; 
File file = new File(filepath); 
if(!path.exists()){ 
path.mkdirs(); 

if (!file.exists()) { 
file.createNewFile(); 


FileOutputStream fos = null; 
fos = new FileOutputStream(file); 
if (null != fos) { 
Bmp.compress(Bitmap.CompressFormat.PNG, 90, fos); 
fos.flush(); 
fos.close(); 

Toast.makeText(this, "截屏文件已保存至SDCard/PrintScreenDemo/ScreenImage/下", Toast.LENGTH_LONG).show(); 


} catch (Exception e) { 
e.printStackTrace(); 



/**
* 获取SDCard的目录路径功能
@return 
*/
private String getSDCardPath(){
File sdcardDir = null;
//判断SDCard是否存在
boolean sdcardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
if(sdcardExist){
sdcardDir = Environment.getExternalStorageDirectory();
}

return sdcardDir.toString();
}
}

布局文件:
< ?xml version="1.0" encoding="utf-8"?>
< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<Button
android:id="@+id/print_btn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="截屏" />

</LinearLayout>
由于是把截屏的图片存放到sd卡里,所以要在manifest.xml文件中增加对sd卡的写入权限.

 

转自:http://my.oschina.net/u/246578/blog/77263

分享到:
评论

相关推荐

    屏幕截取保存本地

    对于移动设备,例如Android和iOS,通常有电源键+音量键的组合来截取屏幕。 屏幕截取的简单封装,意味着开发者将这个功能集成到一个应用程序或库中,使得用户可以通过调用API或函数来执行屏幕截图。这涉及到编程语言...

    android截取屏幕图片

    总之,Android提供了一套相对简单的接口来截取屏幕图片并保存到外部存储。开发者需要理解权限管理的变化,并根据不同的Android版本调整相应的代码,以确保兼容性和用户体验。在实际开发中,可能还需要考虑异步处理、...

    解析Android截取手机屏幕两种实现方案

    在 Android 开发中,截取手机屏幕是一项常见的需求,例如截取 WebView 的视图保存为图片。今天,我们将讨论两种实现 Android 截取手机屏幕的方案,这两种方案都有其优缺,下面我们将详细介绍。 方法1:使用 View....

    Android 截取手机屏幕两种实现方法

    最近在开发的过程中,遇到了一个需要截取屏幕保存为图片的需求,具体为截取webview的视图保存图片。 方法1:首先想到的思路是利用SDK提供的View.getDrawingCache()方法: public void printScreen(View view) { ...

    adb截取手机屏幕及获取设备信息-易语言

    这条命令会将手机屏幕快照保存为PNG格式的文件,并将其放置在设备的/sdcard/目录下。然后,你可以通过以下命令将截图文件拉取到电脑上: ``` adb pull /sdcard/screenshot.png ``` 这样,截图就会被保存到你的电脑...

    sdk图片截取

    在Android开发中,"sdk图片截取"是一个常见的需求,涉及到屏幕截图和图像处理功能。SDK(Software Development Kit)是开发者用来构建应用程序的工具集,其中包括了与图像操作相关的API。下面将详细介绍如何使用...

    Android中截取当前屏幕图片的实例代码

    在Android平台上,截取当前屏幕并保存为图片是一项常见的需求,比如用于用户分享应用界面或者开发者调试。在上述代码中,给出了一个简单的实现方法。以下是对这个实例代码的详细解释: 1. **获取屏幕尺寸**: 首先...

    一个用JNI实现底层截图的源代码

    是用底层JNI交叉编译进行截取当前屏幕图片并保存到sdcard根目录下的。已经测试成功了。但是,需要对/dev/graphics/fb0设备文件具有读写权限。如果您机器没有,那么将返回-100。即打不开文档,里面有所有源代码

    Android实现指定区域截屏

    确保在保存前已经获取到了SD卡的写权限,可以使用`Environment.getExternalStorageDirectory().getPath()`获取SD卡根目录。 5. **展示截图** 要在设备上展示截图,可以创建一个新的`ImageView`,并设置其`src`属性...

    手机QQ怎么截图?.docx

    5. **保存截图**:截图完成后,图片会自动保存在指定的文件夹,如在Android手机中通常是“storage/sdcard0/_screenshot”目录下。你可以通过文件管理器查看并分享这些图片。 对于没有root权限的手机,截图功能可能...

    android屏幕截图

    在大多数Android设备上,可以通过同时按下电源键和音量下键来快速截取屏幕当前的状态。这个快捷键组合是多数Android设备的标准设置,但不同厂商可能会有微小差异,例如某些设备可能需要按电源键和Home键。完成截图后...

    Android代码-CapWindow

    最近在开发的过程中,遇到了一个需要截取屏幕保存为图片的需求,具体为截取webview的视图保存图片。 方法1: 首先想到的思路是利用SDK提供的View.getDrawingCache()方法: public void printScreen(View view) { ...

    android logcat and 自动截屏 tool

    `adb shell screencap -p /sdcard/screenshot.png`会将屏幕截图保存到设备的 `/sdcard` 目录下,然后可以通过`adb pull`命令将图片拉取到本地电脑,例如`adb pull /sdcard/screenshot.png`。 自动截屏工具可能还...

    adb 截图工具 --windows客户端使用

    如果你想直接将截图保存到电脑,可以使用 `adb pull /sdcard/screenshot.png 本地保存路径`,这样图片就会被拉取到你指定的本地路径。 压缩包中的文件 `screencap.exe.config`、`screencap.exe` 和 `screencap.pdb`...

    Android给scrollView截图超过屏幕大小形成长图

    "Android scrollView 截图长图生成" Android 中截图是一种常见的需求,特别是在社交媒体分享时,需要截取某个界面的所有内容...通过这些代码,我们可以实现 Android 中的截图功能,生成长图,并将其保存到 sdcard 中。

    ScreenShot

    本文将深入探讨“ScreenShot”这个程序,它允许开发者或用户捕获当前View的屏幕快照并保存到设备的特定目录中。 首先,让我们了解“ScreenShot”程序的核心功能。它修改了原始的截屏程序,使其能够运行并执行以下...

    基于Android adb的自动截图批处理

    这个批处理脚本会连续截取100张屏幕快照,每秒一张(1000毫秒延迟),并将截图保存到与脚本同一目录下。你可以根据实际需求修改`COUNT`和`DELAY`变量的值。 为了自动化这个过程,可以将批处理脚本放在启动项中,...

    screenshot.rar

    这条命令会在设备的/sdcard/目录下创建一个名为screenshot.png的PNG格式图片文件。如果想将截图直接拉取到电脑,可以使用: ``` adb pull /sdcard/screenshot.png . ``` 这会将设备上的截图文件拉取到当前电脑...

    在robotium的单元测试中如何进行截屏(截图)

    通常情况下,可以选择将图片保存到SD卡上,以避免占用应用程序自身的存储空间。例如: ```java public static String SCREEN_SHOTS_LOCATION = "/sdcard/"; ``` 这里的`"/sdcard/"`是指定的SD卡根目录,可以根据...

Global site tag (gtag.js) - Google Analytics