আমার পিক্সেল 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
, একই কারণে বাদ দেওয়া হয়েছে যেহেতু তারা সরাসরি স্ট্যাটাস বার উচ্চতা প্রাপ্তির অধিকারে থাকা হবে না।