আমার পিক্সেল 3 এক্সএল খাঁজের কারণে এই সমস্যাটি সম্প্রতি আমার জন্য প্রাসঙ্গিক হয়ে উঠেছে। আমি অ্যান্ড্রয়েড বিকাশকারীর সমাধানটি সত্যিই পছন্দ করেছি , তবে আমি ইচ্ছামতো স্ট্যাটাস বারের উচ্চতা পেতে সক্ষম হতে চেয়েছিলাম, কারণ এটি পূর্ণ পর্দার অ্যানিমেশনের জন্য বিশেষত প্রয়োজনীয় ছিল যা আমাকে খেলতে হবে। নীচের ফাংশনটি একটি নির্ভরযোগ্য ক্যোয়ারী সক্ষম করেছে:
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)
}
}
আপনি অবশ্যই স্থিতিশীল সহায়ক শ্রেণীর পদ্ধতি প্যারামিটারের ক্রিয়াকলাপের একটি দুর্বল রেফারেন্স তৈরি করতে চাইবেন, তবে ব্রেভিটির জন্য আমি এই উদাহরণ থেকে বিরত রইলাম। blurBitmapএবং errorHudFrameLayout, একই কারণে বাদ দেওয়া হয়েছে যেহেতু তারা সরাসরি স্ট্যাটাস বার উচ্চতা প্রাপ্তির অধিকারে থাকা হবে না।