使用Activity类中的方法来获取,使用范围是在Activity的类及子类中和有传入Activity类及子类的对象参数的方法中使用
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutactivity_main);
// 通过Activity类中的getWindowManager()方法获取窗口管理,再调用getDefaultDisplay()方法获取获取Display对象
Display display = getWindowManager()getDefaultDisplay();
// 方法一(推荐使用)使用Point来保存屏幕宽、高两个数据
Point outSize = new Point();
// 通过Display对象获取屏幕宽、高数据并保存到Point对象中
displaygetSize(outSize);
// 从Point对象中获取宽、高
int x = outSizex;
int y = outSizey;
// 通过吐司显示屏幕宽、高数据
ToastmakeText(this, "手机像素为:" + x + "x" + y, ToastLENGTH_LONG)show();
// 方法二(不推荐使用)直接通过Display对象获取屏幕宽、高数据
int width = displaygetWidth();
int height = displaygetHeight();
// 通过吐司显示屏幕宽、高数据
ToastmakeText(this, "手机像素为:" + width + "x" + height, ToastLENGTH_LONG)show();
}
}
小米3的屏幕摔坏了,获取数据可以通过小米助手来获取,下面是具体的 *** 作:
1、打开电脑,在官网下载小米助手并安装。
2、然后运行软件,用USB数据线连接手机到电脑。
3、等待几秒钟左右,小米助手就会成功连接到手机。
4、点击小米助手上面的联系人,图库,短信,等导入到电脑即可。
$$$$$$$$$$$$$$$$$$$十种屏幕抓取方法$$$$$$$$$$$$$$$$$$$$$$$$$$$
对于刚刚接触电脑的朋友来说,对如何进行抓图还摸不着头脑,以为需要什么高深的技术或什么专业的软件,甚至还以为需要动用DC来帮忙呢。其实抓图的方法有很多种,但种种都很简单,看了下面的介绍,相信你也能抓出“美”图来!
一、PrintScreen按键+画图工具
不论你使用的是台式机还是笔记本电脑,在键盘上都有一个PrintScreen按键,但是很多用户不知道它是干什么用的,其实它就是屏幕抓图的“快门”!当按下它以后,系统会自动将当前全屏画面保存到剪贴板中,只要打开任意一个图形处理软件并粘贴后就可以看到了,当然还可以另存或编辑。
提示:PrintScreen键一般位于F12的右侧。
二、抓取全屏
抓取全屏幕的画面是最简单的 *** 作:直接按一下PrintScreen键,然后打开系统自带的“画图”(也可以使用PS),再按下Ctrl+V即可。该处没有什么技术含量,只是要记住防止某些“不速之客”污染了画面,比如输入法的状态条、“豪杰超级解霸”的窗口控制按钮等等。
提示:提醒想投稿的朋友:这样的画面比较大,一般的报纸或杂志要求300像素×300像素,最大不超过500像素×500像素(当然特殊需要除外),这就需要到PS或ACDSee中进行调整。
三、抓取当前窗口
有时由于某种需要,只想抓取当前的活动窗口,使用全屏抓图的方法显然不合适了。此时可以按住Alt键再按下PrintScreen键就可只将当前的活动窗口抓下了。
四、抓取级联菜单
在写稿的过程中,免不了“以图代文”,特别是关于级联菜单的叙述,一张截图胜过千言万语。但是,若想使用抓取当前窗口的方法来抓级联菜单就不行了:当按下Alt键以后菜单就会消失。此时可以直接按下PrintScreen键抓取全屏,然后粘贴到图形处理软件中进行后期的处理。如果使用画图工具,就可以使用方形选定工具将所需要的部分“选定”并“剪切”,然后按下Ctrl+E打开“属性”界面将“宽度”和“高度”中的数值设的很小,最后再粘贴并另存即可(如图1)。
提示:如果“属性”中的数值大于剪切下来的,在“粘贴”以后会出现白色的多余背景,因此需要减小其值。
五、抓取**画面
如果喜欢使用WMV或RealOne欣赏**,想将其中的精彩画面保存来了,此时发现PrintScreen键“抓拍”的只是播放器的界面,而播放窗口则是一片漆黑!这该怎么办呢其实这是由于播放**时调用了DirectDraw功能加速视频造成的,并且DirectDraw本身不支持使用PrintScreen抓屏。此时只要在桌面“属性→设置→高级→疑难解答”中将“硬件加速”调至关闭加速,然后正常播放**再按下PrintScreen键进行抓图即可(如图2)。
提示:如果感觉关闭了DirectDraw后的画质不能满足要求,可以使用“豪杰超级解霸”或MPC来播放**或抓图。这些播放软件都自带屏幕截图功能,而且使用都是超简单。另外,如果习惯使用PrintScreen键,可以在“注册表编辑器”中依次展开如下分支:[HKEY_LOCAL_MACHINE\Software\Microsoft\DirectDraw],在右侧的窗口中新建一个“DWORD”值,并将其重命名为“EnablePrintScreen”。双击,在d出的编辑对话框中将其数值数据修改为“1”,单击“确定”按钮即可。
六、抓取游戏画面
说起游戏相信很多朋友都会热血沸腾,可如何保存自己在游戏中“英勇”的场面呢其实也可以使用PrintScreen键来捕捉。下面的图就是用此法捕捉的《大话西游》的场面(如图3):
需要注意的是:某些游戏对DirectDraw功能有依赖,如果关闭了DirectDraw可能会出现游戏不能运行的情况,特别是某些单机版的游戏,而网络版的游戏倒是可以顺利抓图,比如上面的《大话西游》。对于那些棘手的游戏就需要使用专业的抓图软件来帮忙了。
七、专业抓图工具——SnagIt
尽管PrintScreen键的抓图功能可以满足我们一般的应用,可如果稍微有些高要求就无能为力了,比如滚屏抓取、捕捉屏幕录像等等,当有这些需求的时候就要考虑使用专业抓图软件了。在这个领域HyperSnap-DX可以说是老牌软件了,但现在“新锐”SnagIt的不断升级而大有超越之势。现在我们就来看看SnagIt的一些特别用法:
该软件主程序和汉化补丁的安装都很简单,与我们平时安装软件完全类似。安装成功后启动该软件,主界面如图4所示:
(一)滚屏捕捉
在抓图过程中,经常遇到超过桌面尺寸的情况,想查看全部内容必须滚动窗口,要想把该对象全部捕捉下来就需要使用SnagIt来完成:单击“滚动窗口”,在主界面的右侧会看到“捕获”按钮已经准备好了,不过使用该按钮不太方便,下面已经提示了全局的快捷键Ctrl+Shift+P。当目标窗口为当前窗口时,只要按下此组合键就可激活捕捉功能。根据 *** 作提示,用鼠标左键单击一下目标窗口,然后将鼠标移动到滚动条上,该滚动条会自动向下移动,当移动到最底端时会自动停止并直接将捕捉结果保存入“捕获预览”界面,此时就可或编辑或直接另存了
(二)抓取文字
现在很多的网站为了防止被抄袭,都对网页进行了加密。尽管破解其加密的方法有多种,不过SnagIt所提供的捕捉文字功能可谓“所向披靡”:单击“窗口文字”,在右侧窗口中的“输入”中选择“自动滚动窗口”,然后切换到加密网页按下Ctrl+Shift+P组合键激活捕捉功能,单击一下鼠标左键后该窗口会自动滚动,滚动到最底端后自动将结果保存入“捕获预览”。现在就可以另存后使用EmEditor等文字处理软件将其中的空格清除后保存了。
(三)录制屏幕视频
前面我们接触的都是静态的,如果想把自己的 *** 作过程做成录像而向他人进行演示怎么办呢不用麻烦DV了,SnagIt就可办到:单击“录制一个屏幕视频”,在右侧窗口的“输入”中选择“屏幕”,然后将SnagIt最小化,按下Ctrl+Shift+P组合键激活捕捉功能,在d出窗口中点击“开始”,接着进行想录制的具体 *** 作, *** 作结束后双击任务栏的录像机图标暂停并呼出提示窗口,点击“结束”即完成此次 *** 作的录制工作并保存成AVI文件,在“捕捉预览”的窗口中单击播放图标就可以使用Windows Media Player来进行播放了。
上面我们只接触了SnagIt的一些比较有特色的功能,对于那些常用的功能还是使用PrintScreen键来得简单。当然,SnagIt其他一些奇特、另类的功能需要大家自己去尝试了。另外,如果感觉SnagIt的使用太复杂,而PrintScreen键的功能又太简陋,此时就可以试试QQ的抓图功能。
八、QQ抓图也轻松
地球人都知道QQ是用来聊天的,其实它的抓图功能也很出色、实用:当在网上看到任何有趣的,可以快速的用它来捕捉后发给聊友,避免了发给聊友链接而被怀疑是QQ尾巴病毒的尴尬。
(一)捕捉静态
在聊天窗口中单击“捕捉屏幕”图标,此时在屏幕上方会出现“截图”的提示窗口,里面写明了如何进行 *** 作(如图5)。现在只要在需要捕捉的屏幕区域中按住鼠标左键,细心地拖出一个矩形框,将所需的内容包含在其中就可以了。最后在此矩形框中双击鼠标左键就执行了截图,然后直接粘贴到聊天窗口中发给对方,也可打开系统自带的画图,选择“编辑”下“粘贴”,再利用一些画图工具进行简单的编辑处理,重新复制、粘贴到聊天窗口发给对方。
提示:请仔细看出现的提示窗口,它的上端提示:“当前像素RGB(数字)”,这就是当前鼠标所指向画面的颜色代码!如果发现了不错的颜色,可以将此数字代码记下来,应用到自己的编程或网页制作中去。
也许你会发现,如果想激活QQ的捕捉屏幕功能,需要先打开聊天窗口,同时鼠标也不能进行其它的 *** 作了,很不方便。其实,QQ同时提供了快捷键功能:Ctrl+Alt+A。当所需的内容处于最佳捕捉位置的时候,可以按下此快截键来激活此功能,按以上的 *** 作就可以了。如果捕捉的是带有级联菜单的内容,如果按下此快捷键就会使菜单消失。其实可以先按下Ctrl+Alt+Shift+A,然后激活级联菜单,放开Shift键就激活了捕捉功能, *** 作也和前面介绍的一样了。
(二)捕捉影片画面
QQ除了可以捕捉静态的功能,还可以捕捉静态影片、动态影片。不过,为了得到更好的捕捉效果,可以先进行一下设置:在“捕捉屏幕”下拉菜单中选择“影片截图设置”,可详细设置截取动态的宽度,每次捕获帧数,每帧的时间间隔及动态的播放速度(如图6)。建议只要稍微进行一下调整就可以了,如果调整的过多,虽然影片的效果好了,但是系统的资源占有、传输的速度肯定慢的。
使用方法:只要在“捕捉屏幕”下拉菜单中选择相应的功能,然后正常播放影片,到了精彩的地方按下Scroll Lock键,此时聊天窗口中就会出现不断刷新的影片画面,只要按下“发送”就让聊友也欣赏到了。需要注意的是,此功能只支持Windows Media Player播放的影片,而不支持RealOne播放的影片。当然也支持DV拍摄的**短片,支持RM等格式,但需要给你的WMP安装支持RM格式文件的插件。
提示:如果你在收到的短片上单击右键,选择“另存为”就可保存为GIF格式的,当然也保存住了动画效果。
九、DOS屏幕轻松抓
上面我们介绍的都是在Windows下的抓图方法,可是要想在纯DOS下抓取怎么办这一点儿都不复杂!只要借助PIXELPOP软件即可实现。
将下载的文件解压缩到一个分区,比如F:\aa下。进入纯DOS状态,使用“CD”命令进入该文件夹,键入“INSTALL”将该软件安装到“F:\PIXELPOP”下。进入该文件夹,输入“PP”即可运行ppdat文件开始运行,根据屏幕提示得知抓图的快捷键是“Shift+PrintScreen”,当出现需要的画面时只要按下此快捷键就会在软件安装目录下生成SCREEN开头的GIF文件,每按下热键一次就生成一个,序号从00开始递增,如SCREEN00GIF、SCREEN01GIF等(如图7)。
提示:当不需要此软件的时候,可以输入“PP/R”从内存中卸载即可。
十、虚拟机:无所不抓
前面我们介绍了Windows和DOS下的抓图方法,但还有一些截图无法实现,比如BIOS设置界面、BIOS刷新界面、Windows系统安装过程等。由于这些并没有在桌面 *** 作系统下运行,因此只能借助于虚拟机软件来进行了。
最常见的虚拟机软件有两种:Virtualpc和VMware,只要使用了虚拟机软件,上面所提到的抓图难题都迎刃而解:当出现所需画面的时候,可以使用PrintScreen键直接进行抓图!另外,在VMware中可点击菜单“文件→抓取屏幕图像”命令,就能把开机画面、BIOS界面、 *** 作系统安装界面等特殊界面保存下来。
限于篇幅,这里只是着重介绍了抓图的方法,而对于具体到某些该如何抓、怎样后期处理等问题就不再多罗嗦了。“授人以鱼不如授人以渔”,当了解了基本抓图的途径,相信大家能举一反三,不断摸索出更多、更好、更快捷的抓图方法。
教程地址:
>
'以下就是不经过任何控件直接把截图数据存入数组的代码。分二步:
'一、创建一个模块,复制下面代码:
Option Explicit
Private Type PALETTEENTRY
peRed As Byte
peGreen As Byte
peBlue As Byte
peFlags As Byte
End Type
Private Type LOGPALETTE
palVersion As Integer
palNumEntries As Integer
palPalEntry(255) As PALETTEENTRY
End Type
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(7) As Byte
End Type
Private Const RASTERCAPS As Long = 38
Private Const RC_PALETTE As Long = &H100
Private Const SIZEPALETTE As Long = 104
Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function CreateCompatibleDC Lib "GDI32" (ByVal hDC As Long) As Long
Private Declare Function CreateCompatibleBitmap Lib "GDI32" (ByVal hDC As Long, _
ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function GetDeviceCaps Lib "GDI32" (ByVal hDC As Long, ByVal _
iCapabilitiy As Long) As Long
Private Declare Function GetSystemPaletteEntries Lib "GDI32" (ByVal hDC As Long, _
ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries _
As PALETTEENTRY) As Long
Private Declare Function CreatePalette Lib "GDI32" (lpLogPalette As LOGPALETTE) _
As Long
Private Declare Function SelectObject Lib "GDI32" (ByVal hDC As Long, ByVal hObject _
As Long) As Long
Private Declare Function BitBlt Lib "GDI32" (ByVal hDCDest As Long, ByVal XDest As _
Long, ByVal YDest As Long, ByVal nWidth As Long, ByVal nHeight As Long, _
ByVal hDCSrc As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal dwRop _
As Long) As Long
Private Declare Function DeleteDC Lib "GDI32" (ByVal hDC As Long) As Long
Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function SelectPalette Lib "GDI32" (ByVal hDC As Long, ByVal hPalette _
As Long, ByVal bForceBackground As Long) As Long
Private Declare Function RealizePalette Lib "GDI32" (ByVal hDC As Long) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As _
RECT) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hDC As _
Long) As Long
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Type PicBmp
Size As Long
Type As Long
hBmp As Long
hPal As Long
Reserved As Long
End Type
Private Declare Function OleCreatePictureIndirect Lib "olepro32dll" (PicDesc As _
PicBmp, RefIID As GUID, ByVal fPictureOwnsHandle As Long, IPic As IPicture) As Long
'创建BMP位图
Public Function CreateBitmapPicture(ByVal hBmp As Long, ByVal hPal As Long) As Picture
Dim r As Long
Dim Pic As PicBmp
Dim IPic As IPicture
Dim IID_IDispatch As GUID
'填充IDispatch界面
With IID_IDispatch
Data1 = &H20400
Data4(0) = &HC0
Data4(7) = &H46
End With
'填充Pic
With Pic
Size = Len(Pic) '注释: Pic结构长度
Type = vbPicTypeBitmap '注释: 图象类型
hBmp = hBmp '注释: 位图句柄
hPal = hPal '注释: 调色板句柄
End With
'建立Picture图象
r = OleCreatePictureIndirect(Pic, IID_IDispatch, 1, IPic)
'返回Picture对象
Set CreateBitmapPicture = IPic
End Function
'截图处理
Public Function CaptureWindow(ByVal hWndSrc As Long, ByVal Client As Boolean, ByVal _
LeftSrc As Long, ByVal TopSrc As Long, ByVal WidthSrc As Long, ByVal HeightSrc _
As Long) As Picture
Dim hDCMemory As Long '保存截取图象的目标设备
Dim hBmp As Long
Dim hBmpPrev As Long
Dim r As Long
Dim hDCSrc As Long '要截取图象的源设备
Dim hPal As Long
Dim hPalPrev As Long
Dim RasterCapsScrn As Long
Dim HasPaletteScrn As Long
Dim PaletteSizeScrn As Long
Dim LogPal As LOGPALETTE
'GetDC传回用于写入窗口显示区域的设备内容句柄,而GetWindowDC传回写入整个窗口的设备内容句柄
'区别在于GetDC不包括边框、滚动条、标题栏、菜单等,而GetWindowDC则包括
If Client Then '如果为真,即指定是客户区(不包括标题栏等)
hDCSrc = GetDC(hWndSrc) 'GetDC检索一指定窗口的客户区域或整个屏幕的显示设备上下文的句柄
Else '否则用GetWindowDC寻找后获取
hDCSrc = GetWindowDC(hWndSrc)
End If
hDCMemory = CreateCompatibleDC(hDCSrc) '创建一块与hDCSrc设备场景一样的内存区
hBmp = CreateCompatibleBitmap(hDCSrc, WidthSrc, HeightSrc) '创建一幅与设备有关位图
hBmpPrev = SelectObject(hDCMemory, hBmp) 'SelectObject将位图放入设备场景中
'获得屏幕属性
RasterCapsScrn = GetDeviceCaps(hDCSrc, RASTERCAPS) '根据指定设备场景代表的设备的功能返回信息
HasPaletteScrn = RasterCapsScrn And RC_PALETTE
PaletteSizeScrn = GetDeviceCaps(hDCSrc, SIZEPALETTE)
'如果屏幕对象有调色板则获得屏幕调色板
If HasPaletteScrn And (PaletteSizeScrn = 256) Then
'建立屏幕调色板的拷贝
LogPalpalVersion = &H300
LogPalpalNumEntries = 256
r = GetSystemPaletteEntries(hDCSrc, 0, 256, LogPalpalPalEntry(0)) '获取系统调色板
hPal = CreatePalette(LogPal) 'CreatePalette调色板函数
'将新建立的调色板选入建立的内存绘图句柄中
hPalPrev = SelectPalette(hDCMemory, hPal, 0)
r = RealizePalette(hDCMemory) 'RealizePalette函数使系统恢复当前选中的逻辑调色板中的值
End If
'拷贝图象
r = BitBlt(hDCMemory, 0, 0, WidthSrc, HeightSrc, hDCSrc, LeftSrc, TopSrc, vbSrcCopy)
hBmp = SelectObject(hDCMemory, hBmpPrev)
If HasPaletteScrn And (PaletteSizeScrn = 256) Then
hPal = SelectPalette(hDCMemory, hPalPrev, 0)
End If
'释放资源
r = DeleteDC(hDCMemory)
r = ReleaseDC(hWndSrc, hDCSrc)
Set CaptureWindow = CreateBitmapPicture(hBmp, hPal)
End Function
'二、程序调用举例:
Private Sub Command1_Click()
'捕捉活动窗口
Dim tmpPicture
Dim hWndActive As Long
Dim r As Long
Dim RectActive As RECT
hWndActive = GetForegroundWindow()
r = GetWindowRect(hWndActive, RectActive)
'截图
Set tmpPicture = CaptureWindow(hWndActive, False, 0, 0, _
RectActiveRight - RectActiveLeft, RectActiveBottom - RectActiveTop)
'保存到数组
Dim PBag As New PropertyBag
Dim B() As Byte
PBagWriteProperty "Picture", tmpPicture
'读取tmpPicture 并写到 Pbag 容器中
B = PBagContents '获取容器Byte 到 B() 数组中
Set PBag = Nothing
MsgBox "已保存到数组B中!"
End Sub
以上就是关于Android中的手机屏幕像素的几种获取方式全部的内容,包括:Android中的手机屏幕像素的几种获取方式、小米3屏幕破了怎么取数据、怎样可以抓取显示屏上面的内容,转换成图片格式等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)