/** ** @ Param Activity * @ Return > 0 success; <= 0 fail */ Public Static Int Getstatusheight (activity ){ Int Statusheight = 0 ; Rect localrect = New Rect (); activity. getwindow (). getdecorview (
). Getwindowvisibledisplayframe (localrect); statusheight = Localrect. Top; If (0 = Statusheight) {class <?> Localclass; Try {Localclass = Class. forname (
"Com. Android. Internal. r$ dimen" ); Object localobject = Localclass. newinstance (); Int I5 = integer. parseint (
Localclass. getfield ("status_bar_height" ). Get (
Localobject). tostring (); statusheight = Activity. getresources (
). Getdimensionpixelsize (I5 );} Catch (Classnotfoundexception e) {e. printstacktrace ();} Catch (Illegalaccessexception e) {e. printstacktrace ();} Catch (Instantiationexception e) {e. printstacktrace ();} Catch (Numberformatexception e) {e. printstacktrace ();} Catch (Illegalargumentexception e) {e. printstacktrace ();} Catch (Securityexception e) {e. printstacktrace ();} Catch (Nosuchfieldexception e) {e. printstacktrace ();}} Return Statusheight ;}
UseCodeThe height of the status bar of Xiaomi phone 1 (480X854) is tested as follows:38