关于android截图的一些方法

这里只记录一些链接,对于我的需求,只需要,

public static String createScreenShot(View v)     {        //测试截屏功能    SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd_HH-mm-ss",Locale.US);    String dirPath=Mapplication.SDPATH+Constants.QZ_PATH;    File dirFile=new File(dirPath);    if(!dirFile.exists())    {     dirFile.mkdir();    }     String  fname = Mapplication.SDPATH+Constants.QZ_PATH+sdf.format(new Date())+ ".png";          v.setDrawingCacheEnabled(true);     v.buildDrawingCache();      Bitmap bitmap = v.getDrawingCache();      if(bitmap  != null)    {          Bitmap bmpall=Bitmap.createBitmap(Mapplication.screen[0],CommonFun.dip2px(Mapplication.getContext(), 250),Config.ARGB_8888);                 Canvas canvas=new Canvas(bmpall);       Bitmap bmp1 = BitmapFactory.decodeResource(Mapplication.getContext().getResources(),R.drawable.pb_score_bg);       canvas.drawBitmap(bmp1,0,0,null);

canvas.drawBitmap(bitmap,0,0,null);

System.out.println("bitmap got!");             try{               FileOutputStream  out = new FileOutputStream(fname);               bmpall.compress(Bitmap.CompressFormat.PNG,100, out);               System.out.println("file" + fname + "output done.");               return fname;             }catch(Exception e) {               e.printStackTrace();               return "";             }           }else{             System.out.println("bitmap s NULL!");             return "";           }       }

用view getdrawingcache来截图(需求是只需要截特定的一部分),但是这样的图是没有背景的,所以 Canvas canvas=new Canvas(bmpall);       Bitmap bmp1 = BitmapFactory.decodeResource(Mapplication.getContext().getResources(),R.drawable.pb_score_bg);       canvas.drawBitmap(bmp1,0,0,null);

canvas.drawBitmap(bitmap,0,0,null); 是用canvas来绘制背景和图,,测试Ok

其他的截图文章:http://veikr.com/201202/android_screen_shot.html    http://blog.csdn.net/jokers_i/article/details/39549633

http://blog.csdn.net/xu_fu/article/details/39268771 http://blog.csdn.net/woshinia/article/details/11520403

时间: 2024-08-27 10:51:18

关于android截图的一些方法的相关文章

Android中使用代码截图的各种方法总结

1,基于Android SDK的截屏方法 (1)主要就是利用SDK提供的View.getDrawingCache()方法.网上已经有很多的实例了.首先创建一个android project,然后进行Layout,画一个按键(res/layout/main.xml): <?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android

Android截图命令screencap与视频录制命令screenrecord

Android截图命令screencap 查看帮助命令 [email protected] ~$ adb shell screencap -v screencap: invalid option -- v usage: screencap [-hp] [-d display-id] [FILENAME] -h: this message -p: save the file as a png. -d: specify the display id to capture, default 0. If

Android之完美退出方法

为什么要写这篇文章? 网上有很多种退出方法,可实际上很多方法都不通用(在某个版本下可用,到了另一个版本就不行),或者方法的实际效果根本就和其描述不符(也不知道那些发帖的人测没测试过). 但我们的需求又确实存在.在某些情况下,我们需要在应用中打开多个Activity,但如果仅仅使用finish()方法就不能在需要的时候达到一次性退出的效果,自己作为一个Android退出问题的受害者,通过良久思考和实际测试,找到了一个比较不错的,在2.1-2.2-2.3版本下都通用的完全退出方法(2.1版本也基本可

Eclipse导入Android项目的正确方法

直接上图: 在android 中导入项目后 包出现错误的解决方法 选中项目,右击打开Properties: 1.检查android选项页中是否勾选了project build target. 2.检查java build path 中 orler and explort 中是否勾选上了相应的android libraries. 3.打开菜单栏中windows -> preferences : java -> compiler 然后更换jdk版本,一般是将1.6换成1.5就无错了. 本人用这个方

使用SourceInsight查看android中的native方法

SourceInsight真的是查看源代码的神器.只要知道了文件名,就可以快速定位到文件.最近在研究Android的touch系统,发现MotionEvent的getX()方法调用的是nativeGexAxis(),于是想看看该本地代码是如何实现的,但我不知道nativeGexAxis的实现代码在什么位置.Android中的类调用本地代码是通过类名相似或Android.mk文件定义.MotionEvent所在的pack为android.view,将点号换成下划线,我们可以推测MotionEven

android Intent的startActivityForResult()方法

startActivityForResult() 之前学习了利用Intent跳转页面的同时传值,但有的时候需要从跳转到的页面返回所需要的值(如修改了用户信息,需要返回修改的信息),通俗的意思就是A.Activity跳转到B.Activity,在A.Activity中要自动获取到B.Activity返回的数据. 1.介绍几个主要的方法: 1 MainActivity.this.startActivityForResult(intent1, 1); 第一个参数intent1就不介绍了,第二个参数的值

Android的GPS获取方法

Android的GPS获取方法 其实这是一个伪命题:因为我不是要说android的gps获取实现,或者说底层具体实现:而是我直接使用了百度地图的sdk,在其中直接获取到gps信息,以前有做过这个功能,今天就直接将demo介绍一下以利大家. 第一步:获取sdk 在百度地图的开发者官网上直接就可以下载到线程的demo:当然功能相对是齐全的,基本解决需要地图的各种功能了.http://developer.baidu.com/map/index.php?title=androidsdk 第二步,获取ke

安卓开发解决android.os.NetworkOnMainThreadException异常方法(主线程不能直接调用webservice)

安卓开发解决android.os.NetworkOnMainThreadException异常方法 2013-01-07 14:01:04|  分类: 技术 |  标签:安卓  技术  java  |举报|字号 订阅 在android 2.3上访问网络的方法,在android 4.0上运行时报android.os.NetworkOnMainThreadException异常,主要问题在于4.0中访问网络不能在主线程中进行,有两个方法可以解决.第一种是在主线程中增加如下代码[不推荐]: // 详见

Android基类设计方法详解

1 为什么要设计基类 为什么要给程序设计基类呢?主要是出于2个原因,一是方便代码编写,减少重复代码和冗余逻辑,优化代码:二是优化程序架构,降低耦合度,方便拓展.修改. ok,编写代码是程序员的第一步,那么第二步就是要编写高质量的代码,代码能实现功能是一方面,写的优美则是另一方面,这也是我们所有攻城狮们应该追求的境界. 2 设计基类的基本思路 那么,哪些东西我们需要抽象到基类中呢? 2.1 重复的代码:如果一个逻辑是大多数子类都需要使用的 2.2 臭而长的代码:典型的findviewbyid.To