यह मुद्दा हाल ही में मेरे पिक्सेल 3XL में पायदान के कारण मेरे लिए प्रासंगिक हो गया। मुझे एंड्रॉइड डेवलपर का समाधान वास्तव में पसंद आया , लेकिन मैं इच्छाशक्ति पर स्थिति बार ऊंचाई प्राप्त करने में सक्षम होना चाहता था, क्योंकि यह एक पूर्ण स्क्रीन एनीमेशन के लिए विशेष रूप से आवश्यक था जिसे मुझे खेलना चाहिए। नीचे दिए गए फ़ंक्शन ने एक विश्वसनीय क्वेरी सक्षम की:
private val DEFAULT_INSET = 96
fun getInsets(view: View?): Int {
var inset = DEFAULT_INSET
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//Safe because only P supports notches
inset = view?.rootWindowInsets?.stableInsetTop ?: DEFAULT_INSET
}
return inset
}
fun blurView(rootView: View?, a: SpacesActivity?) {
val screenBitmap = getBitmapFromView(rootView!!)
val heightDifference = getInsets(rootView)
val croppedMap = Bitmap.createBitmap(
screenBitmap, 0, heightDifference,
screenBitmap.width,
screenBitmap.height - heightDifference)
val blurredScreen = blurBitmap(croppedMap)
if (blurredScreen != null) {
val myDrawable = BitmapDrawable(a!!.resources, blurredScreen)
a.errorHudFrameLayout?.background = myDrawable
a.appBarLayout?.visibility = View.INVISIBLE
}
}
और फिर गतिविधि वर्ग में:
fun blurView() {
this.runOnUiThread {
Helper.blurView(this)
}
}
आप निश्चित रूप से स्थिर हेल्पर वर्ग विधि पैरामीटर के लिए गतिविधि का एक कमजोर संदर्भ पारित करना चाहते हैं, लेकिन संक्षिप्तता के लिए मैं इस उदाहरण में refrained होगा। blurBitmap
और errorHudFrameLayout
, इसी कारण से छोड़े गए हैं, क्योंकि वे सीधे स्थिति पट्टी की ऊंचाई प्राप्त करने से संबंधित नहीं है।