Android实例-程序界面内截取屏幕(XE8+小米2)
2015-09-06 10:40
225 查看
结果:
1.只能截取程序界面内的图片。
2.图片有点不清楚,自己设置清楚度。
实例代码:
unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls, FMX.Objects, FMX.Layouts; type TForm1 = class(TForm) Label1: TLabel; Button1: TButton; Image1: TImage; Layout1: TLayout; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses FMX.Platform; //需要引入 {$R *.fmx} {$R *.NmXhdpiPh.fmx ANDROID} function MakeScaleScreenshot(Sender: TControl): TBitmap;//截取屏幕函数 var fScreenScale: Single; function GetScreenScale: Single; var ScreenService: IFMXScreenService; begin Result := 1; if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenService)) then begin Result := ScreenService.GetScreenScale; end; end; begin fScreenScale := GetScreenScale; Result := TBitmap.Create(Round(Sender.Width * fScreenScale), Round(Sender.Height * fScreenScale)); Result.Clear(0); if Result.Canvas.BeginScene then try Sender.PaintTo(Result.Canvas, RectF(0, 0, Result.Width, Result.Height)); finally Result.Canvas.EndScene; end; end; procedure TForm1.Button1Click(Sender: TObject); var oBitmap: TBitmap; begin oBitmap := MakeScaleScreenshot(Layout1);//此处Layout1为所有容器的容器 Image1.Bitmap.Assign(oBitmap); oBitmap.DisposeOf; end; end.
相关文章推荐
- Android的activity学习笔记
- Android studio删除项目
- Android实用代码七段(五)
- Android Studio快捷键-mac版
- xutils保存cookie
- Android Studio上的几个插件介绍
- Android SDK开发包国内下载地址
- Android两次后退键退出
- 史上最详细的Android Studio系列教程五--Gradle命令详解与导入第三方包
- 史上最详细的Android Studio系列教程四--Gradle基础
- 下载Android 源码
- 史上最详细的Android Studio系列教程三--快捷键
- android-----三种方式(sax、pull、dom)解析xml文件
- 史上最详细的Android Studio系列教程二--基本设置与运行
- android MVP框架
- android MVP框架
- android MVP框架
- android下m、mm、mmm编译命令的使用
- android 用shape oval属性画圆环变成黑圆形解决办法
- 【Android】Fragment真正意义上的onResume和onPause