`
l540151663
  • 浏览: 185382 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

android截图

阅读更多
  安卓有自带的截图方法,Activity如下:
package com.example.croppic;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class MainActivity extends Activity {

private ImageView ivImage;
private Button btnGet;
private static final int BITMAPCROP = 3021;
private File file;
Bitmap bitmap;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ivImage = (ImageView) findViewById(R.id.ivShow);
btnGet = (Button) findViewById(R.id.btnGet);

String filename = android.os.Environment.getExternalStorageDirectory().getPath()
+ "/dcim/100MEDIA/test.jpg";

file = new File(filename);

btnGet.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

if (!file.exists()) {
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.l1);
dumpBitmap(bitmap);
}

Uri uri = Uri.fromFile(file);//从文件里获取图片uri
Intent intent = MainActivity.getCropImageIntent(uri);
startActivityForResult(intent, BITMAPCROP);
}
});

}

/**
* 保存图片
* @param b
*/
public void dumpBitmap(Bitmap b) {

if (b != null) {
FileOutputStream fos = null;
try {

fos = new FileOutputStream(file);
b.compress(Bitmap.CompressFormat.JPEG, 100, fos);
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}

}
}
}

/**
*获取截图intent
* @param photoUri
* @return
*/
public static Intent getCropImageIntent(Uri photoUri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(photoUri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 0);
intent.putExtra("aspectY", 1);//当xy为1,1时,表示截图框长宽比例1:1
// intent.putExtra("outputX", 300);
// intent.putExtra("outputY", 300);//输出的图片比例
intent.putExtra("return-data", true);
return intent;
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK)
return;

if(file.exists()){
file.delete();
}

switch (requestCode) {

case BITMAPCROP:
Bitmap bm = data.getParcelableExtra("data");
if (bm != null) {
ivImage.setLayoutParams(new LinearLayout.LayoutParams(bm.getWidth(), bm.getHeight()));
ivImage.setImageBitmap(bm);

}
break;
}
}
}

xml布局文件activity_main.xml如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/btnGet"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="GET"/>
   
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center">
    <ImageView
        android:id="@+id/ivShow"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitCenter"/>
</LinearLayout>
   
</LinearLayout>

别忘了权限:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
分享到:
评论

相关推荐

    Android截屏截图的几种方法总结

    Android截屏截图是 Android 开发中常见的需求, Android 截屏截图方法汇总将为您带来多种截屏截图方法的总结,让您更好地掌握 Android 截屏截图技术。在本文中,我们将探讨 Activity、View、ScrollView、ListView、...

    ScreenShotSample_android截屏_DEMO_android截屏demo_

    通过学习和实践这个DEMO,开发者能够掌握Android客户端截屏功能的实现,理解服务与客户端之间的通信方式,以及Android系统中与截图相关的权限管理。这有助于在自己的应用中实现类似的高级功能。

    Android截屏示例demo

    通过阅读提供的博客文章(http://blog.csdn.net/u013171283/article/details/79032369),你可以了解到如何将这个功能集成到你的Android应用中,比如创建一个按钮,点击后触发截屏操作,并将截图保存到应用的私有...

    android截图,android截屏,adb截屏,

    是android轻量级的截屏工具非常的好用 1.把脚本放入指定目录下面: C:\Users\****\AppData\Local\Android\Sdk\platform-tools 2.把用手机打开想要截图的页面双击运行此脚本,图片就截取到脚本所在的文件夹

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

    这个"android截图的demo(手机屏幕截图)"就是一个展示如何在Android应用中实现这一功能的例子。在这个Demo中,开发者可以学习到如何捕获设备屏幕,并将截图保存为图像文件。 首先,我们需要了解Android中的`View`...

    Android截屏Demo

    这个名为"Android截屏Demo"的项目提供了一个简单的示例,展示了如何通过编程方式实现在Android设备上进行屏幕截图。下面,我们将深入探讨这个Demo所涉及的核心知识点,以及如何实现这个功能。 1. **Android权限**:...

    android截屏实现demo

    在Android平台上,实现截屏功能是一项常见的需求,无论是开发者调试应用还是用户分享屏幕内容,都需要用到这个功能。本篇文章将详细讲解如何在Android中实现截屏效果,并提供一个简单的DEMO供参考。 首先,我们需要...

    Android截屏以及解析截屏程序源代码

    总的来说,实现不需root的Android截图并将其解析为BMP格式是一项涉及Android系统接口、JNI编程以及图像处理技术的任务。通过理解Android系统的工作原理,熟练掌握C++和Java的混合编程,我们可以创建出自己的截图工具...

    android截屏保存为图片

    在Android系统中,截屏是一项常见的功能,用户可以轻松地保存屏幕上的当前显示内容作为图片。无需root权限的截屏代码对于许多开发者和用户来说都极具价值,因为root权限可能会带来安全风险。以下是对"android截屏...

    Android截图,圆形,Canvas-IT计算机-毕业设计.zip

    这份毕业设计的源码Demo就是针对这样的需求,它提供了Android截图并将其转换为圆形的实现方法,同时展示了如何利用Canvas进行自定义绘图。下面将详细解释其中涉及的主要知识点: 1. **Android截图**: 在Android中...

    android截屏(root)

    在Android操作系统中,"android截屏(root)"是指通过获取设备的root权限来实现更高级别的屏幕截图功能。root是Android系统中的一个概念,它允许用户获取到系统的最高权限,能够访问和修改系统级别的文件,包括那些...

    Android 截屏 和录制屏幕

    在Android平台上,截屏和录制屏幕是两种常见的功能,它们对于开发者调试应用、用户分享屏幕内容或制作教程视频都有重要作用。接下来,我们将深入探讨这两种技术的实现原理。 **一、Android 截屏** 1. **获取屏幕...

    PC端 android 截图软件

    PC端 android 截图软件 ,电脑端可以实时显示,很方便,支持所以的android手机

    android 截屏以及对该图进行模糊

    在Android平台上,截屏和对截图进行模糊处理是常见的需求,尤其在开发用户界面或调试应用时。本文将深入探讨如何实现这两个功能,并基于提供的"TestPrintScreenAndBlur"压缩包文件来解释其中的FastBlur算法。 首先...

    android截屏

    在Android系统中,截屏功能是一项基础且常用的操作,它允许用户快速捕获屏幕上的内容以便分享或保存。本文将围绕“android截屏”这一主题,深入探讨Android平台上的截屏实现方式,以及如何开发一个简单的截屏应用,...

    android截屏功能demo

    6. **通知用户**:成功保存后,可以通过Notification或者Toast通知用户截屏已完成,并提供查看或分享截图的选项。 在压缩包文件名称列表中的"androidTest"可能是一个示例项目或者测试代码,它包含了实现上述功能的...

    Android代码-Android截图圆形Canvas.rar

    这个“Android代码-Android截图圆形Canvas.rar”压缩包可能包含了一个实现这种功能的示例项目。下面我们将详细探讨如何在Android中实现圆形截图的功能。 首先,Android中的截图通常通过`View`类的`draw()`方法或者`...

    Android截图

    综上所述,Android截图功能的实现不仅包括基本的系统截图,还可以通过扩展功能提高用户体验,例如摇一摇截图和定时截图。开发者需要注意设备差异、权限管理、性能优化和用户隐私保护,以提供更加完善的截图解决方案...

    android截图 区域截图 部分截图

    android截图 区域截图 部分截图

Global site tag (gtag.js) - Google Analytics