`
xubingok
  • 浏览: 130176 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

android截取屏幕图片

 
阅读更多

代码如下:

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"/>

 

0
0
分享到:
评论

相关推荐

    android 指定屏幕内区域截图

    在Android开发中,有时我们需要实现特定功能,例如只截取应用程序界面的一部分,而不是整个屏幕。这个功能在"指定屏幕内区域截图"中得以体现。在本文中,我们将深入探讨如何在Android中实现这一功能,包括如何选取...

    android jni 屏幕截图 NativeScreenCapture

    本项目“android jni 屏幕截图 NativeScreenCapture”专注于利用JNI技术来实现Android设备的屏幕截图功能。下面将详细介绍这个过程涉及的关键知识点。 1. **JNI基础**:JNI是Android平台上的一个接口,它为Java应用...

    Android 截屏并且合成截屏图片

    当用户截取屏幕时,系统会发出一个ACTION_SCREENSHOT广播,我们可以通过注册BroadcastReceiver来接收这个广播。 ```java public class ScreenshotReceiver extends BroadcastReceiver { @Override public void ...

    android截取当前屏幕图像

    在Android系统中,截取当前屏幕图像是一项常见的需求,无论是为了调试、测试还是用户分享功能。这个过程涉及到Android系统的视图层次结构、渲染机制以及权限管理。以下将详细讲解如何在Android中实现屏幕截图功能。 ...

    Android取得当前屏幕的截图

    此外,我们还可以使用其他方法来获取屏幕截图,例如使用 MediaProjectionManager 来截取屏幕,或者使用 Android 的 Accessibility 服务来截取屏幕。但是,这些方法都需要在 Android 5.0 及更高版本中使用。 获取...

    android区域性屏幕截图

    在Android开发中,有时我们需要对屏幕的特定区域进行截图,而不是整个屏幕,这在比如用户头像选择、游戏截图分享等功能中非常常见。这个“android区域性屏幕截图”项目提供了解决此类需求的代码实现,已经经过测试并...

    Android实例之程序界面内截取屏幕

    本文将基于"Android实例之程序界面内截取屏幕"这一主题,深入探讨如何在Android应用内部实现屏幕截图功能。 首先,我们要理解Android系统提供的一些核心API,用于获取设备的屏幕内容。在Android中,我们可以使用`...

    Android手机屏幕截图和图片多点触摸缩放

    本文将详细探讨两种在Android手机上实现屏幕截图的方法,并重点介绍一种用于图片多点触摸缩放的工具类,帮助开发者创建更加互动和用户体验良好的应用。 首先,让我们来看看Android手机如何进行屏幕截图。方法一,...

    android屏幕截图

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

    Android系统截屏 读取/dev/graphics/fb0获取屏幕图片

    在Android系统中,截屏是一种常见的操作,通常用于记录或分享屏幕内容。然而,系统默认提供的截屏方式可能无法满足所有需求,特别是对于开发者来说,有时需要更底层、更灵活的方式来实现这一功能。这里我们将讨论一...

    android 屏幕的截取

    在Android平台上,屏幕截取是一项常见的功能,它允许用户或开发者获取设备当前屏幕内容的静态图像。本技术主要涉及以下几个核心知识点: 1. **SurfaceView**:在Android中,SurfaceView是一个特殊的视图,它拥有...

    android截图的demo(手机屏幕截图)

    在Android开发中,屏幕截图是常见的功能之一,用于获取设备当前屏幕显示的内容。这个"android截图的demo(手机屏幕截图)"就是一个展示如何在Android应用中实现这一功能的例子。在这个Demo中,开发者可以学习到如何...

    Android截取指定区域保存

    在Android开发中,有时...综上所述,实现"Android截取指定区域保存"功能涉及了Android权限管理、屏幕截图、图像处理、文件操作等多个技术领域。开发者需要对这些方面有深入理解,才能构建出高效且用户友好的截屏工具。

    android 截图 可手动选截取部分

    在Android操作系统中,截图是日常使用手机时非常常见的功能,用于保存屏幕上的当前状态或分享信息。然而,标准的截图操作通常只能捕获整个屏幕,而不能自由选择想要截取的部分。为了满足用户对自定义截图的需求,...

    android 布局生成图片

    在Android开发中,有时我们需要将一个布局转换为图片,例如为了实现分享到微信的功能,或者进行屏幕截图。本文将深入探讨如何在Android中实现“布局生成图片”这一技术,以及如何将其与微信分享功能集成。 首先,让...

    Android截屏(可截取不可见的部分)

    在Android平台上,截屏是一项常见的功能,用户通常用于保存或分享屏幕上的内容。然而,标准的系统截屏方法只能捕获当前屏幕上可见的部分,对于那些超出屏幕边界或者不可见的视图(View)元素,是无法直接截取的。...

    Android 自定义区域截图实现

    在Android平台上,自定义区域截图是一项实用且常见的功能,它允许用户自由选择屏幕上的特定区域进行截图,而非全屏截图。实现这一功能涉及到对Android系统的理解、View的层级结构以及图像处理技术。以下是对该主题的...

    Android-模仿微信拾取图片图片截取拍照获取图片

    在Android应用开发中,"Android-模仿微信拾取图片图片截取拍照获取图片"是一个常见的需求,主要用于实现用户在应用内选择、截图或拍摄图片的功能。这个标题涉及到的知识点主要包含以下几个方面: 1. **多媒体文件...

    Android拍照,相册选取图片后剪切

    在Android平台上,开发一款应用,让用户能够通过拍照或者从相册选取图片,然后进行剪切操作,是一项常见的功能需求。这个过程涉及到多个Android系统服务和API的交互,包括相机服务、图片选择器以及图片处理技术。...

Global site tag (gtag.js) - Google Analytics