`
lovehong0306
  • 浏览: 12139 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

取得当前屏幕的截图

阅读更多

文章出处: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 取得当前屏幕的截图是 Android 应用程序开发中的一项常见需求。为了实现这个功能,需要使用 Bitmap 类里的方法,首先取得一个 bitmap,然后用取得的 bitmap 去绘制一张图片,...

    Qt获取屏幕分辨率

    在Qt编程中,获取屏幕分辨率是一项常见的需求,特别是在开发图形用户界面时,了解用户的显示器设置对布局和设计至关重要。本文将详细讲解如何使用Qt库来获取屏幕分辨率,并提供相关的实践示例。 Qt提供了QScreen类...

    用系统钩子取得当前位置

    这个场景中,我们关注的是“用系统钩子取得当前位置”,即通过编程手段获取鼠标在屏幕上的点击位置,并将其记录到文件中。下面将详细阐述系统钩子的工作原理、如何实现以及涉及的相关技术。 系统钩子,顾名思义,是...

    屏幕取色器,点屏幕上任何一点,就能取得其RGB颜色.zip

    首先,程序会通过操作系统提供的API(例如Windows API或Mac OS的Quartz框架)捕获屏幕的当前帧缓冲区,这一过程称为屏幕抓图。抓图后,程序会定位到用户鼠标点击的位置,然后提取该像素的颜色信息。在RGB色彩模式下...

    Android基础教程(四)之-取得手机屏幕大小DisplayMetrics的应用

    ### Android基础教程(四)之-取得手机屏幕大小DisplayMetrics的应用 #### 一、引言 在Android开发中,为了确保应用能够在不同尺寸和分辨率的设备上正常运行,开发者经常需要根据当前设备的屏幕特性来调整布局或者...

    获取手机屏幕大小(DisplayMetrics类取得画面宽高)

    ### 获取手机屏幕大小(DisplayMetrics类取得画面宽高) 在Android应用开发过程中,了解并获取设备的屏幕尺寸是一项基本且重要的任务。本篇文章将基于提供的代码示例,详细解析如何使用`DisplayMetrics`类来获取手机...

    一个获取屏幕分辨率的VI

    如题,可以获取当前屏幕的分辨率,如果屏幕缩放了,那么取得是缩放计算后的分辨率 如:分辨率为1920×1080,屏幕缩放为125%,那么该VI计算得出的是1536×864 (1920/1.25=1536 1080/1.25=864) 该VI主要用于某些时候...

    关于获取多个屏幕分辨率以及进行一些设置1

    我们还定义了一个 MonitorInfo 结构体,用于保存显示器信息,包括显示器名称和当前名称的显示器支持的分辨率模式。VEC_MONITORMODE_INFO 是一个 vector,用于保存所有显示器信息。 在 MonitorAdapter 类中,我们...

    实用的屏幕取色的小工具

    而Ctrl+Alt+Z则用于显示或隐藏软件界面,确保在不干扰当前工作流程的情况下,用户可以随时调用或隐藏工具。 在实际使用中,屏幕取色工具通常会显示颜色的RGB、HEX、CMYK等不同颜色模式的数值,这是因为这些颜色模式...

    易语言小猪炫彩屏幕色调整

    1. **取得窗口信息**:这是获取屏幕或特定窗口当前状态的过程。在易语言中,开发者可能使用`GetWindowInfo`函数或类似的API,以获取窗口的位置、大小、风格等信息。 2. **设置窗口信息**:在获取到必要的信息后,...

    浅谈Android屏幕自适应.pdf

    在解决方案中,我们提出了一个实践可行的解决方案,该方案利用设计时屏幕和当前运行设备的屏幕之比,对界面上的视图元素进行适当的缩放,从而达到自适应的目的。 此外,我们还讨论了 Google 公 司为了屏幕的自适应...

    Sip Pro 1.2 屏幕取色工具

    sip 是Mac os平台上的一款非常不错的Mac屏幕取色软件,你只需要鼠标点一下即可取得屏幕当前位置的颜色值,并将数据自动存到剪切板,方便随时粘贴出来。支持 CSS、UIColor 等多种格式。 应用介绍 Sip是一款位于菜单...

    手机屏幕分析

    SLCD屏幕的流行主要归功于HTC,因为该品牌旗下的大部分主流机型都采用该材质的屏幕,并且取得了非常不错的市场认可。代表机型有:HTC G11(incredible S)、HTC Mozart、HTC G14(Sensation)、HTC G18(Sensation XE)...

    android获取屏幕高度和宽度的实现方法

    `将当前屏幕的信息填充到`DisplayMetrics`对象中: ```java getWindowManager().getDefaultDisplay().getMetrics(metric); ``` 3. 通过`metric.widthPixels`和`metric.heightPixels`分别获取屏幕的宽度和高度(像素...

    易语言源码易语言截获鼠标单击事件用于屏幕取色.rar

    4. 显示或保存颜色:将取得的颜色值显示在界面上,或者保存到文件中供后续使用。 这个程序的源码可以作为学习易语言事件处理和图形操作的实例,通过阅读和分析代码,初学者可以了解到如何在易语言中进行事件响应和...

    Android TabHost实现屏幕UI窗口的TAB切换功能.rar

    Android TabHost实现屏幕UI窗口的TAB切换功能,实现的过程:声明TabHost对象、取得TabHost对象,为TabHost添加标签,新建一个newTabSpec(newTabSpec),设置其标签和图标(setIndicator),设置内容(setContent),然后...

    亲测可用,vbs获取电脑当前登录的用户名.vbs

    亲测可用! 很有意思的小脚本,VBS vbs脚本实现获取屏幕分辨率,大家一起学习分享啊! 本人将会不定期的上传一些经过测试可用的vbs小程序。

    基于FPGA的LED大屏幕显示控制器设计.pdf

    基于这些特性,利用FPGA实现的大屏幕LED显示技术成为了当前的一个研究热点。 设计基于FPGA的LED大屏幕显示控制器,首先需要选择合适的FPGA芯片。本研究使用的FPGA芯片为Altera公司的CycloneII系列的EP2C35,它具有...

    通过鼠标可以取得RGB值的工具

    1. **实时显示**:当鼠标在屏幕上移动时,工具会实时更新当前颜色的RGB值。 2. **颜色历史记录**:保存最近选取的颜色,便于回溯和比较。 3. **颜色复制**:允许用户复制颜色值到剪贴板,方便粘贴到其他应用程序。 4...

Global site tag (gtag.js) - Google Analytics