আমি কীভাবে অ্যান্ড্রয়েডের একটি ডায়ালগ বক্স থেকে কালো পটভূমি সরিয়ে ফেলব। ছবিটি সমস্যাটি দেখায়।
final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger);
আমি কীভাবে অ্যান্ড্রয়েডের একটি ডায়ালগ বক্স থেকে কালো পটভূমি সরিয়ে ফেলব। ছবিটি সমস্যাটি দেখায়।
final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger);
উত্তর:
এই কোড যুক্ত করুন
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
বা পরিবর্তে এটি একটি:
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.getWindow().setBackgroundDrawable(new ColorDrawableResource(R.color.transparent));
dialog.getWindow().setBackgroundDrawableResource(R.color.transparent);
<style name="NewDialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowTitleStyle">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:background">@android:color/transparent</item>
</style>
জাভা ব্যবহার করুন
Dialog dialog = new Dialog(this, R.style.NewDialog);
আমি আপনাকে সাহায্য আশা করি!
আমি সহজ সমস্যার মুখোমুখি হয়েছি এবং আমি যে সমাধানটি নিয়ে এসেছি তা স্বচ্ছ ব্যাচগ্রাউন্ড থিম প্রয়োগ করা হয়েছিল। আপনার শৈলীতে এই লাইনগুলি লিখুন
<item name="android:windowBackground">@drawable/blue_searchbuttonpopupbackground</item>
</style>
<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
এবং তারপরে অ্যাড করুন
android:theme="@style/Theme.Transparent"
ডায়ালগ ক্রিয়াকলাপের ব্লকের ভিতরে আপনার মূল ম্যানিফেস্ট ফাইলটিতে।
আপনার ডায়লগ ক্রিয়াকলাপে এক্সএমএল সেট প্লাস
android:background= "#00000000"
কোনওভাবে জাখরিয়াস সমাধান আমার পক্ষে কার্যকর হয়নি তাই আমি এই সমস্যাটি সমাধান করার জন্য নীচের থিমটি ব্যবহার করেছি ...
<style name="DialogCustomTheme" parent="android:Theme.Holo.Dialog.NoActionBar">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
</style>
এই থিমটি নীচের মত ডায়লগ এ সেট করতে পারেন
final Dialog dialog = new Dialog(this, R.style.DialogCustomTheme);
উপভোগ করুন !!
আপনি এটি ব্যবহার করতে পারেন:
setBackgroundDrawable(null);
পদ্ধতি। এবং নিম্নলিখিত ডক:
/**
* Set the background to a given Drawable, or remove the background. If the
* background has padding, this View's padding is set to the background's
* padding. However, when a background is removed, this View's padding isn't
* touched. If setting the padding is desired, please use
* {@link #setPadding(int, int, int, int)}.
*
* @param d The Drawable to use as the background, or null to remove the
* background
*/
ডায়ালগ পপ আপ পূরণ করুন ডিফল্ট কালো পটভূমির রঙ বা থিম রঙের যাতে আপনার TRANSPARENT
ডায়ালগটিতে ব্যাকগ্রাউন্ড সেট করতে হবে । কোডের নীচে চেষ্টা করুন: -
final Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.setContentView(R.layout.splash);
dialog.show();
আপনি যদি ডায়লগের অন্ধকার পটভূমি ধ্বংস করতে চান তবে এটি ব্যবহার করুন
dialog.getWindow().setDimAmount(0);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Objects.requireNonNull(alertDialog.getWindow()).setDimAmount(0); }
বিদ্যমান বিদ্যমান উত্তরগুলির সাথে আমি খুঁজে পেয়েছি এমন একটি সমস্যা হ'ল মার্জিনগুলি সংরক্ষণ করা হয়নি। এটি কারণ তারা সমস্ত ওভাররাইড করেandroid:windowBackground
একটি দৃ color় বর্ণের সাথে মার্জিনের জন্য দায়বদ্ধ বৈশিষ্ট্যটি । যাইহোক, আমি অ্যান্ড্রয়েড এসডিকে কিছু খনন করেছি এবং ডিফল্ট উইন্ডো ব্যাকগ্রাউন্ডটি আঁকতে সক্ষম পেয়েছি এবং স্বচ্ছ সংলাপগুলির অনুমতি দেওয়ার জন্য এটি কিছুটা সংশোধন করেছি।
প্রথমে, আপনার প্রকল্পে অনুলিপি / প্ল্যাটফর্মগুলি / অ্যান্ড্রয়েড ২২/২০১৮ / ডেটা / ড্রেসযোগ্য / ডায়ালগ_ব্যাকগ্রাউন্ড_ম্যাটরিয়াল.এক্সএমএল করুন। অথবা, এই লাইনগুলি কেবল একটি নতুন ফাইলে অনুলিপি করুন:
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:inset="16dp">
<shape android:shape="rectangle">
<corners android:radius="2dp" />
<solid android:color="?attr/colorBackground" />
</shape>
</inset>
android:color
সেট করা আছে লক্ষ্য করুন ?attr/colorBackground
। এটি আপনি দেখতে ডিফল্ট কঠিন ধূসর / সাদা। রঙ সংজ্ঞায়িত অনুমতি দিতে android:background
স্বচ্ছতা দেখাতে আপনার কাস্টম শৈলী স্বচ্ছ হতে এবং, সব আমরা যা করতে হবে পরিবর্তন ?attr/colorBackground
করতে @android:color/transparent
। এখন এটি এর মতো দেখাবে:
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:inset="16dp">
<shape android:shape="rectangle">
<corners android:radius="2dp" />
<solid android:color="@android:color/transparent" />
</shape>
</inset>
এর পরে, আপনার থিমে যান এবং এটি যুক্ত করুন:
<style name="MyTransparentDialog" parent="@android:style/Theme.Material.Dialog">
<item name="android:windowBackground">@drawable/newly_created_background_name</item>
<item name="android:background">@color/some_transparent_color</item>
</style>
প্রতিস্থাপন করতে ভুলবেন না newly_created_background_name
আপনি শুধু নির্মিত অঙ্কনযোগ্য ফাইলের প্রকৃত নাম সঙ্গে, এবং প্রতিস্থাপনsome_transparent_color
এবং পছন্দসই স্বচ্ছ পটভূমিতে ।
এর পরে আমাদের থিমটি সেট করা দরকার। এটি তৈরি করার সময় এটি ব্যবহার করুন AlertDialog.Builder
:
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.MyTransparentDialog);
তারপরে যথাযথভাবে ডায়ালগটি তৈরি করুন, তৈরি করুন এবং দেখান!
সতর্কতা ডায়ালগের সাথে অনূদিততা অর্জন করতে আমি এটিই করেছি।
একটি কাস্টম শৈলী তৈরি করা হয়েছে:
<style name="TranslucentDialog" parent="@android:style/Theme.DeviceDefault.Dialog.Alert">
<item name="android:colorBackground">#32FFFFFF</item>
</style>
এবং তারপরে ডায়ালগটি তৈরি করুন:
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.TranslucentDialog);
AlertDialog dialog = builder.create();
এই স্টাইল কোডটি স্টাইলে সেট করুন
<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
এবং কেবল মিথ্যাটিকে সত্যিকারের নীচে পরিবর্তন করুন
<item name="android:backgroundDimEnabled">true</item>
এটি আপনার ব্যাকগ্রাউন্ডকে ম্লান করে দেবে।
মনোযোগ দিন: পটভূমি পরিবর্তনের জন্য বিল্ডার ব্যবহার করবেন না।
Dialog dialog = new Dialog.Builder(MainActivity.this)
.setView(view)
.create();
dialog.show();dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
পরিবর্তন
Dialog dialog = new Dialog(getActivity());
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(view);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.show();
ডায়ালগ.বিল্ডার ব্যবহার করার সময় এটি এতে getWindow()
বিকল্প দিচ্ছে না ।
Window window = d.getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
এই আমার উপায়, আপনি চেষ্টা করতে পারেন!
আপনি যদি DialogFrament
ক্লাসটি বাড়িয়েছেন তবে আপনি থিমটি এতে সেট করতে পারেন:
setStyle(DialogFragment.STYLE_NORMAL, R.style.customDialogTheme);
এবং তারপরে আপনার স্টাইলস.এক্সএমএল ফাইলটিতে কাস্টম থিম তৈরি করুন (প্যারামিটারগুলির জন্য @ লংএলভিটির উত্তর দেখুন)
<item name="android:windowCloseOnTouchOutside">true</item>
ব্যবহারকারী যদি ডায়ালগের বাইরের স্পর্শ করে তবে ডায়লগটি বন্ধ করতে চাইলে যুক্ত করতে ভুলবেন না ।
কাস্টম শ্রেণীর সাথে কাস্টম সংলাপ ব্যবহার করা যে কোনও ব্যক্তির জন্য আপনার ক্লাসে স্বচ্ছতা পরিবর্তন করতে হবে অনক্রিট () এ এই লাইনটি যুক্ত করুন:
getWindow().setBackgroundDrawableResource(android.R.color.transparent);
নিশ্চিত R.layout.themechanger
হয়ে নিন যে কোনও ব্যাকগ্রাউন্ডের রঙ নেই কারণ ডিফল্টরূপে ডায়ালগটিতে একটি ডিফল্ট ব্যাকগ্রাউন্ড রঙ থাকে।
আপনারও যোগ করতে হবে dialog.getWindow().setBackgroundDrawable(newColorDrawable(Color.TRANSPARENT));
এবং পরিশেষে
<style name="TransparentDialog">
<item name="android:windowIsFloating">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowTitleStyle">@null</item>
</style>