文章出处:http://gundumw100.iteye.com/blog/1104772
取得当前屏幕的截图主要使用了Bitmap 类里的方法,首相取得一个bitmap 然后用取得的bitmap 去绘制一张图片然后进行保存。
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.os.Environment;
import android.util.Log;
import android.view.View;
public class ShotScreen {
private static final String TAG="shotscreen";
@SuppressWarnings("unused")
private static Bitmap takeScreenShot(Activity activity){
View view =activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bitmap = view.getDrawingCache();
Rect rect = new Rect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
int statusBarHeight = rect.top;
System.out.println(statusBarHeight);
int width =activity.getWindowManager().getDefaultDisplay().getWidth();
int height =activity.getWindowManager().getDefaultDisplay().getHeight();
Bitmap bitmap2 = Bitmap.createBitmap(bitmap,0,statusBarHeight, width, height - statusBarHeight);
view.destroyDrawingCache();
return bitmap2;
}
@SuppressWarnings("unused")
private static void savePic(Bitmap bitmap,String filename){
FileOutputStream fileOutputStream = null;
try {
fileOutputStream = new FileOutputStream(filename);
if (fileOutputStream != null) {
bitmap.compress(Bitmap.CompressFormat.PNG, 90, fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
}
} catch (FileNotFoundException e) {
Log.d(TAG, "Exception:FileNotFoundException");
e.printStackTrace();
} catch (IOException e) {
Log.d(TAG, "IOException:IOException");
e.printStackTrace();
}
}
/**
*
* @param a
*/
public static void shoot(Activity a){
if (android.os.Environment.MEDIA_MOUNTED != "mounted") {
ShotScreen.savePic(ShotScreen.takeScreenShot(a), "/sdcard/抽样.png");
}else{
ShotScreen.savePic(ShotScreen.takeScreenShot(a), "/data/data/"+a.getPackageName()+"/抽样.png");
}
}
分享到:
相关推荐
"Android 取得当前屏幕的截图" Android 取得当前屏幕的截图是 Android 应用程序开发中的一项常见需求。为了实现这个功能,需要使用 Bitmap 类里的方法,首先取得一个 bitmap,然后用取得的 bitmap 去绘制一张图片,...
在Qt编程中,获取屏幕分辨率是一项常见的需求,特别是在开发图形用户界面时,了解用户的显示器设置对布局和设计至关重要。本文将详细讲解如何使用Qt库来获取屏幕分辨率,并提供相关的实践示例。 Qt提供了QScreen类...
这个场景中,我们关注的是“用系统钩子取得当前位置”,即通过编程手段获取鼠标在屏幕上的点击位置,并将其记录到文件中。下面将详细阐述系统钩子的工作原理、如何实现以及涉及的相关技术。 系统钩子,顾名思义,是...
首先,程序会通过操作系统提供的API(例如Windows API或Mac OS的Quartz框架)捕获屏幕的当前帧缓冲区,这一过程称为屏幕抓图。抓图后,程序会定位到用户鼠标点击的位置,然后提取该像素的颜色信息。在RGB色彩模式下...
### Android基础教程(四)之-取得手机屏幕大小DisplayMetrics的应用 #### 一、引言 在Android开发中,为了确保应用能够在不同尺寸和分辨率的设备上正常运行,开发者经常需要根据当前设备的屏幕特性来调整布局或者...
### 获取手机屏幕大小(DisplayMetrics类取得画面宽高) 在Android应用开发过程中,了解并获取设备的屏幕尺寸是一项基本且重要的任务。本篇文章将基于提供的代码示例,详细解析如何使用`DisplayMetrics`类来获取手机...
如题,可以获取当前屏幕的分辨率,如果屏幕缩放了,那么取得是缩放计算后的分辨率 如:分辨率为1920×1080,屏幕缩放为125%,那么该VI计算得出的是1536×864 (1920/1.25=1536 1080/1.25=864) 该VI主要用于某些时候...
我们还定义了一个 MonitorInfo 结构体,用于保存显示器信息,包括显示器名称和当前名称的显示器支持的分辨率模式。VEC_MONITORMODE_INFO 是一个 vector,用于保存所有显示器信息。 在 MonitorAdapter 类中,我们...
而Ctrl+Alt+Z则用于显示或隐藏软件界面,确保在不干扰当前工作流程的情况下,用户可以随时调用或隐藏工具。 在实际使用中,屏幕取色工具通常会显示颜色的RGB、HEX、CMYK等不同颜色模式的数值,这是因为这些颜色模式...
1. **取得窗口信息**:这是获取屏幕或特定窗口当前状态的过程。在易语言中,开发者可能使用`GetWindowInfo`函数或类似的API,以获取窗口的位置、大小、风格等信息。 2. **设置窗口信息**:在获取到必要的信息后,...
在解决方案中,我们提出了一个实践可行的解决方案,该方案利用设计时屏幕和当前运行设备的屏幕之比,对界面上的视图元素进行适当的缩放,从而达到自适应的目的。 此外,我们还讨论了 Google 公 司为了屏幕的自适应...
sip 是Mac os平台上的一款非常不错的Mac屏幕取色软件,你只需要鼠标点一下即可取得屏幕当前位置的颜色值,并将数据自动存到剪切板,方便随时粘贴出来。支持 CSS、UIColor 等多种格式。 应用介绍 Sip是一款位于菜单...
SLCD屏幕的流行主要归功于HTC,因为该品牌旗下的大部分主流机型都采用该材质的屏幕,并且取得了非常不错的市场认可。代表机型有:HTC G11(incredible S)、HTC Mozart、HTC G14(Sensation)、HTC G18(Sensation XE)...
`将当前屏幕的信息填充到`DisplayMetrics`对象中: ```java getWindowManager().getDefaultDisplay().getMetrics(metric); ``` 3. 通过`metric.widthPixels`和`metric.heightPixels`分别获取屏幕的宽度和高度(像素...
4. 显示或保存颜色:将取得的颜色值显示在界面上,或者保存到文件中供后续使用。 这个程序的源码可以作为学习易语言事件处理和图形操作的实例,通过阅读和分析代码,初学者可以了解到如何在易语言中进行事件响应和...
Android TabHost实现屏幕UI窗口的TAB切换功能,实现的过程:声明TabHost对象、取得TabHost对象,为TabHost添加标签,新建一个newTabSpec(newTabSpec),设置其标签和图标(setIndicator),设置内容(setContent),然后...
亲测可用! 很有意思的小脚本,VBS vbs脚本实现获取屏幕分辨率,大家一起学习分享啊! 本人将会不定期的上传一些经过测试可用的vbs小程序。
基于这些特性,利用FPGA实现的大屏幕LED显示技术成为了当前的一个研究热点。 设计基于FPGA的LED大屏幕显示控制器,首先需要选择合适的FPGA芯片。本研究使用的FPGA芯片为Altera公司的CycloneII系列的EP2C35,它具有...
1. **实时显示**:当鼠标在屏幕上移动时,工具会实时更新当前颜色的RGB值。 2. **颜色历史记录**:保存最近选取的颜色,便于回溯和比较。 3. **颜色复制**:允许用户复制颜色值到剪贴板,方便粘贴到其他应用程序。 4...