代码如下:
package com.iceman.printscreen;
import java.io.File;
import java.io.FileOutputStream;
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卡的写入权限.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
分享到:
相关推荐
demo中监听手机截屏监来获取手机里的图片地址,然后显示在界面上,并且展示了截屏图片和标识图片进行合成新的图片。
Android手机屏幕截图的两种方法,附加:图片多点触摸缩放控制的工具类
Android进行截图,通过把view装换成bitmap的方式,可以截取屏幕外的部分
代码示例,自己研究的通过读取/dev/graphics/fb0文件解析出系统界面的图片 需要root系统才能使用 可以截取android系统所有界面的图片,需要做系统截图的可以看看
自己做的一个android 屏幕截取成一张图片还有换衣服的技术
Android取得屏幕截图主要使用了Bitmap类里的方法,首先取得一个bitmap然后用取得的bitmap去绘制一张图片然后进行保存。
2.保证无毒 3.简单,方便,实用 4.实例可以自行改用 5.如有非法,本人无法律责任,由改动代码人负责! 6.需要更多本人作品,查找标签“朱建强” 7.请下载,杀毒后再使用!
本项目是一个把图片生成为mp4实现屏幕录像的例子源码,原理是先给屏幕不断截图,结束以后再把图片转成视频,录制结束可以把图片生成为MP4然后保存到SDCard,项目需要ROOT权限,我用2.3.7系统测试生成的视频貌似打不...
本文实例为大家分享了Android截取指定View为图片的具体代码,供大家参考,具体内容如下 这个功能是为了截取指定的View为图片,然后分享到微信以及朋友圈使用的! 如图所示,我需要截取整个LinearLayout的内容,多余的...
本项目是一个把图片生成为mp4实现屏幕录像的例子源码,原理是先给屏幕不断截图,结束以后再把图片转成视频,录制结束可以把图片生成为MP4然后保存到SDCard,项目需要ROOT权限,我用2.3.7系统测试生成的视频貌似打不...
Android 截取手机屏幕两种实现方法 最近在开发的过程中,遇到了一个需要截取屏幕保存为图片的需求,具体为截取webview的视图保存图片。 方法1:首先想到的思路是利用SDK提供的View.getDrawingCache()方法: public ...
android实现任意手势轨迹截屏,在手机屏幕的图片上截取一张小图片,有需要的可以参考学习。
android 自定义比例裁剪图片(拍照 相册)方式 16:9 10:7 自定义 宽度默认屏幕宽度
获取手机_平板等Android设备的屏幕信息 apk 代码 截图 android设备直接安装 包括图片素材存放目录 宽高像素dp 屏幕密度 屏幕dpi 屏幕长宽比 以及安卓各个密度屏幕的dpi dp_px换算 和代表分辨率.rar,太多无法一一验证...
思路:①需要定义一个固定的截屏框。 ②被截取的图片需要可以放大缩小,移动。图片初始化的时候,将图片按比例放大或则缩小,将宽和高教小的一边,放大或则缩小到框的大小。... ③截图是取框的坐标轴,截取屏幕图片。
主要为大家详细介绍了Android实现屏幕截图并保存截取图片到指定文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Pano360 ...支持原视频渲染(铺满屏幕/剪切/自适应) 支持播放全景图片 视频实时截图 在线视频播放(你可能需要自行处理多种格式的解码问题) 支持锁定任意坐标轴,用户从不同角度进入,看到的是同一个场景
获取手机\平板等Android设备的屏幕信息 apk+源码+截图 android设备直接安装 包括图片素材存放目录 宽高像素dp 屏幕密度 屏幕dpi 屏幕长宽比 以及安卓各个密度屏幕的dpi dp/px换算 和代表分辨率