- 浏览: 5825477 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
取得当前屏幕的截图主要使用了Bitmap 类里的方法,首相取得一个bitmap 然后用取得的bitmap 去绘制一张图片然后进行保存。
android之截屏(包括截取scrollview与listview的)
Android中View转换为Bitmap及getDrawingCache=null的解决方法
http://www.cnblogs.com/devinzhang/archive/2012/06/05/2536848.html
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之截屏(包括截取scrollview与listview的)
public class ScreenShot { // 获取指定Activity的截屏,保存到png文件 public static Bitmap takeScreenShot(Activity activity) { // View是你需要截图的View View view = activity.getWindow().getDecorView(); view.setDrawingCacheEnabled(true); view.buildDrawingCache(); Bitmap b1 = view.getDrawingCache(); // 获取状态栏高度 Rect frame = new Rect(); activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); int statusBarHeight = frame.top; System.out.println(statusBarHeight); // 获取屏幕长和高 int width = activity.getWindowManager().getDefaultDisplay().getWidth(); int height = activity.getWindowManager().getDefaultDisplay() .getHeight(); // 去掉标题栏 // Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455); Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height - statusBarHeight); view.destroyDrawingCache(); savePic(b, "/sdcard/screen_test.png"); return b; } // 保存到sdcard public static void savePic(Bitmap b, String strFileName) { FileOutputStream fos = null; try { fos = new FileOutputStream(strFileName); if (null != fos) { b.compress(Bitmap.CompressFormat.PNG, 90, fos); fos.flush(); fos.close(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 把View对象转换成bitmap * */ public static Bitmap convertViewToBitmap(View view) { view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); view.buildDrawingCache(); Bitmap bitmap = view.getDrawingCache(); if (bitmap != null) { System.out.println("这不是nullde1"); Log.d("nullde1", "nullde1"); } else { System.out.println("这nullnulllnulnlul"); } return bitmap; } // 程序入口1 public static void shoot(Activity a) { ScreenShot.savePic(ScreenShot.takeScreenShot(a), "/sdcard/screen_test.png"); } // 程序入口2 public static void shootView(View view) { ScreenShot.savePic(ScreenShot.convertViewToBitmap(view), "sdcard/xx.png"); } public static Bitmap getViewBitmap(View v) { v.clearFocus(); v.setPressed(false); boolean willNotCache = v.willNotCacheDrawing(); v.setWillNotCacheDrawing(false); // Reset the drawing cache background color to fully transparent // for the duration of this operation int color = v.getDrawingCacheBackgroundColor(); v.setDrawingCacheBackgroundColor(0); if (color != 0) { v.destroyDrawingCache(); } v.buildDrawingCache(); Bitmap cacheBitmap = v.getDrawingCache(); if (cacheBitmap == null) { Log.e("TTTTTTTTActivity", "failed getViewBitmap(" + v + ")", new RuntimeException()); return null; } Bitmap bitmap = Bitmap.createBitmap(cacheBitmap); // Restore the view v.destroyDrawingCache(); v.setWillNotCacheDrawing(willNotCache); v.setDrawingCacheBackgroundColor(color); return bitmap; } /** * 截取scrollview的屏幕 * **/ public static Bitmap getBitmapByView(ScrollView scrollView) { int h = 0; Bitmap bitmap = null; // 获取listView实际高度 for (int i = 0; i < scrollView.getChildCount(); i++) { h += scrollView.getChildAt(i).getHeight(); scrollView.getChildAt(i).setBackgroundResource(R.drawable.bg3); } Log.d(TAG, "实际高度:" + h); Log.d(TAG, " 高度:" + scrollView.getHeight()); // 创建对应大小的bitmap bitmap = Bitmap.createBitmap(scrollView.getWidth(), h, Bitmap.Config.ARGB_8888); final Canvas canvas = new Canvas(bitmap); scrollView.draw(canvas); // 测试输出 FileOutputStream out = null; try { out = new FileOutputStream("/sdcard/screen_test.png"); } catch (FileNotFoundException e) { e.printStackTrace(); } try { if (null != out) { bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); out.flush(); out.close(); } } catch (IOException e) { // TODO: handle exception } return bitmap; } private static String TAG = "Listview and ScrollView item 截图:"; /** * 截图listview * **/ public static Bitmap getbBitmap(ListView listView) { int h = 0; Bitmap bitmap = null; // 获取listView实际高度 for (int i = 0; i < listView.getChildCount(); i++) { h += listView.getChildAt(i).getHeight(); } Log.d(TAG, "实际高度:" + h); Log.d(TAG, "list 高度:" + listView.getHeight()); // 创建对应大小的bitmap bitmap = Bitmap.createBitmap(listView.getWidth(), h, Bitmap.Config.ARGB_8888); final Canvas canvas = new Canvas(bitmap); listView.draw(canvas); // 测试输出 FileOutputStream out = null; try { out = new FileOutputStream("/sdcard/screen_test.png"); } catch (FileNotFoundException e) { e.printStackTrace(); } try { if (null != out) { bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); out.flush(); out.close(); } } catch (IOException e) { // TODO: handle exception } return bitmap; } }
Android中View转换为Bitmap及getDrawingCache=null的解决方法
http://www.cnblogs.com/devinzhang/archive/2012/06/05/2536848.html
发表评论
-
利用广播实现强制下线功能
2016-12-28 10:45 1472最近一口气买 ... -
Android百分比布局Percent支持库
2015-09-02 11:08 3149虽然有很多的布局可以在 Android 应用程序开发的世界供我 ... -
ViewDragHelper行为测试
2015-08-12 17:36 2744只是简单记录一下 以后可能会实现一些效果 import ... -
android5.x之Palette调色板
2015-07-17 10:30 3342Palette类可以分析一张图片,取出这张图片的特征色,然后为 ... -
使用ClipboardManager剪贴板实现复制粘贴功能
2015-04-10 14:39 3776经常要使用复制粘贴的功能,比如长安一个TextView弹出一个 ... -
LocationListener监听位置变化,当进入到某一距离内时发出提醒
2014-08-19 15:03 7682项目中需要这样的要求: 启动一个服务一直在背后监听当前位置变化 ... -
Android下集成FacebookSDk到项目并发表评论
2013-08-28 14:36 4877项目中需要发表自己的评论到Facebook,需要集成Faceb ... -
MediaRecorder录音,MediaPlayer播放
2013-05-23 09:53 7549直接看代码 import java.io.DataOutp ... -
Notification的基本用法
2013-05-22 11:52 5965android4.0以前: private static ... -
android音频、视频、拍照基础操作
2013-03-27 11:55 2831播放音乐和视频用的是类:MediaPlayer 刻录声音和视 ... -
tabhost通过手势滑动切换activity
2013-02-18 17:59 11162package com.mars.mp3player; ... -
VideoView简单视频播放
2013-02-17 17:17 9302只是上上手而已的例子。 package com.chen ... -
android 再按一次后退键退出应用程序
2012-06-15 21:51 4130private static Boolean isExit ... -
AlarmManager全局定时器/闹钟
2012-02-01 10:11 5863http://407827531.iteye.com/blog ... -
倒计时的CountDownTimer
2011-12-23 13:06 31246直接看这里吧,我只是搬运工。 定时执行在一段时候后停止的倒计 ... -
Android流量统计TrafficStats类的使用
2011-12-06 16:25 26466对于Android流量统计来说在2.2版中新加入了Traffi ... -
ScrollView当显示超出当前页面时自动移动到最底端
2011-09-01 09:42 17013卷轴视图(ScrollView)是指当拥有很多内容,一屏显示不 ... -
在SurfaceView上拖动一架飞机
2011-08-23 12:40 2941接上一篇在SurfaceView上拖动一张小图片 什么叫拖动飞 ... -
在SurfaceView上拖动一张小图片
2011-08-22 18:20 5246用手指随便拖。这里采用了线程去绘制,其实也可以在onTouch ... -
用getIdentifier()获取资源Id
2011-07-28 22:36 10773做项目过程中遇到一个问题,从数据库里读取图片名称,然后调用图片 ...
相关推荐
"Android 取得当前屏幕的截图" Android 取得当前屏幕的截图是 Android 应用程序开发中的一项常见需求。为了实现这个功能,需要使用 Bitmap 类里的方法,首先取得一个 bitmap,然后用取得的 bitmap 去绘制一张图片,...
在Qt编程中,获取屏幕分辨率是一项常见的需求,特别是在开发图形用户界面时,了解用户的显示器设置对布局和设计至关重要。本文将详细讲解如何使用Qt库来获取屏幕分辨率,并提供相关的实践示例。 Qt提供了QScreen类...
这个场景中,我们关注的是“用系统钩子取得当前位置”,即通过编程手段获取鼠标在屏幕上的点击位置,并将其记录到文件中。下面将详细阐述系统钩子的工作原理、如何实现以及涉及的相关技术。 系统钩子,顾名思义,是...
首先,程序会通过操作系统提供的API(例如Windows API或Mac OS的Quartz框架)捕获屏幕的当前帧缓冲区,这一过程称为屏幕抓图。抓图后,程序会定位到用户鼠标点击的位置,然后提取该像素的颜色信息。在RGB色彩模式下...
### Android基础教程(四)之-取得手机屏幕大小DisplayMetrics的应用 #### 一、引言 在Android开发中,为了确保应用能够在不同尺寸和分辨率的设备上正常运行,开发者经常需要根据当前设备的屏幕特性来调整布局或者...
### 获取手机屏幕大小(DisplayMetrics类取得画面宽高) 在Android应用开发过程中,了解并获取设备的屏幕尺寸是一项基本且重要的任务。本篇文章将基于提供的代码示例,详细解析如何使用`DisplayMetrics`类来获取手机...
屏幕截图工具在我们的日常生活中扮演着不可或缺的角色。随着技术的不断进步,屏幕捕捉软件的功能也越来越强大和多样化。本文将详细探讨一款名为“屏幕捕捉5.62.05”的软件,它不仅能够满足日常需求,还为用户提供了...
如题,可以获取当前屏幕的分辨率,如果屏幕缩放了,那么取得是缩放计算后的分辨率 如:分辨率为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)...
紧接着,系统会弹出一个新的窗口,这个窗口显示了当前屏幕的分辨率设置信息。 3. 在这个设置窗口中,你会发现一个名为“允许屏幕自动旋转”的选项。如果你希望锁定屏幕旋转,不希望屏幕因设备方向的改变而转动,那么...
`将当前屏幕的信息填充到`DisplayMetrics`对象中: ```java getWindowManager().getDefaultDisplay().getMetrics(metric); ``` 3. 通过`metric.widthPixels`和`metric.heightPixels`分别获取屏幕的宽度和高度(像素...
4. 显示或保存颜色:将取得的颜色值显示在界面上,或者保存到文件中供后续使用。 这个程序的源码可以作为学习易语言事件处理和图形操作的实例,通过阅读和分析代码,初学者可以了解到如何在易语言中进行事件响应和...
Android TabHost实现屏幕UI窗口的TAB切换功能,实现的过程:声明TabHost对象、取得TabHost对象,为TabHost添加标签,新建一个newTabSpec(newTabSpec),设置其标签和图标(setIndicator),设置内容(setContent),然后...