উত্তর:
আপনার res/values/styles.xml
ফাইলে নিম্নলিখিত স্টাইল যুক্ত করুন (যদি আপনার না থাকে তবে এটি তৈরি করুন)) এখানে একটি সম্পূর্ণ ফাইল রয়েছে:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<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>
</resources>
(মানটি @color/transparent
হ'ল রঙের মান #00000000
যা আমি res/values/color.xml
ফাইলে রেখেছি @android:color/transparent
later আপনি পরবর্তী Android সংস্করণগুলিতেও ব্যবহার করতে পারেন ))
তারপরে আপনার ক্রিয়াকলাপে শৈলীটি প্রয়োগ করুন, উদাহরণস্বরূপ:
<activity android:name=".SampleActivity" android:theme="@style/Theme.Transparent">
...
</activity>
android:windowIsFloating
সত্য হিসাবে সেট হওয়ার কারণে এটি একটি কথোপকথনের মতো আচরণ করবে । একটি সাধারণ ক্রিয়াকলাপের মতো আচরণ করার জন্য এই সম্পত্তিটি সরান ( android:style/Theme.Translucent.NoTitleBar
AppCompatActivity
। সুতরাং parent="android:Theme"
আমার অ্যাপটি ক্র্যাশ করছিল। আমি এটি সরিয়েছি এবং এটি কবজির মতো কাজ করে। ধন্যবাদ!
এটা এইভাবেই চলে:
<activity android:name=".usual.activity.Declaration" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
50% black should be #7f000000
। প্রতিটি উপাদান (এ, আর, জি, বি) এর থেকে মান নিতে পারে 0-255
। 50% of 255 = 127. 127 in Hex = 7F
যেভাবে স্বচ্ছতা (অস্বচ্ছতা) গণনা করা যায়
শৈলীতে। এক্সএমএল:
<style name="Theme.AppCompat.Translucent" parent="Theme.AppCompat.NoActionBar">
<item name="android:background">#33000000</item> <!-- Or any transparency or color you need -->
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>
অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল:
<activity
android:name=".WhateverNameOfTheActivityIs"
android:theme="@style/Theme.AppCompat.Translucent">
...
</activity>
Theme.Appcompat.Light.NoActionBar
পরিবর্তে আপনার থিমটি উত্তরাধিকার সূত্রে পেতে পারেন ।
background
এবং আপনার পছন্দের আধা স্বচ্ছ রঙ করাwindowBackground
আপনার ক্রিয়াকলাপটি ম্যানিফেস্টে এইভাবে ঘোষণা করুন:
<activity
android:name=".yourActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
এবং আপনার বিন্যাসে একটি স্বচ্ছ পটভূমি যুক্ত করুন।
আপনার প্রকল্পের অ্যান্ড্রয়েড ম্যানিফেস্ট ফাইলটিতে আপনি স্বচ্ছ করতে চান এমন ক্রিয়াকলাপের জন্য স্বচ্ছ থিম বরাদ্দ করুন:
<activity
android:name="YOUR COMPLETE ACTIVITY NAME WITH PACKAGE"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
আমি এটিকে কিছুটা যুক্ত করতে চেয়েছিলাম কারণ আমিও একজন নতুন অ্যান্ড্রয়েড বিকাশকারী। গৃহীত উত্তরটি দুর্দান্ত তবে আমি কিছুটা সমস্যায় পড়েছি। আমি কীভাবে রং.এক্সএমএল ফাইলটিতে রঙ যুক্ত করব তা নিশ্চিত ছিলাম না। এটি কীভাবে করা উচিত তা এখানে:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="class_zero_background">#7f040000</color>
<color name="transparent">#00000000</color>
</resources>
আমার আসল রং.এক্সএমএল ফাইলটিতে আমার কাছে "অঙ্কনীয়" ট্যাগটি ছিল:
<drawable name="class_zero_background">#7f040000</drawable>
এবং তাই আমি রঙের জন্য এটিও করেছি, তবে আমি বুঝতে পারিনি যে "@ রঙ /" রেফারেন্সটি এক্সএমএলে "রঙ" ট্যাগটির সন্ধান করবে। আমি ভেবেছিলাম যে অন্য কারও সাহায্য করার জন্য আমারও এটি উল্লেখ করা উচিত।
আমি এটি যোগ করে ২.৩.৩ এ অর্জন করেছি android:theme="@android:style/Theme.Translucent"
ম্যানিফেস্টে ক্রিয়াকলাপ ট্যাগ ।
আমি নিম্ন সংস্করণগুলি সম্পর্কে জানি না ...
AppCompatActivity
যদি এটি ব্যবহার করছেন তবে ব্যবহার করবেন না ।
আমার ক্ষেত্রে, আমাকে কিছু শর্তের ভিত্তিতে জাভাতে রানটাইমের উপর থিমটি সেট করতে হবে। সুতরাং আমি শৈলীতে একটি থিম তৈরি করেছি (অন্যান্য উত্তরের মতো):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<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>
</resources>
তারপরে জাভাতে আমি এটিকে আমার ক্রিয়াকলাপে প্রয়োগ করেছি:
@Override
protected void onCreate(Bundle savedInstanceState) {
String email = getIntent().getStringExtra(AppConstants.REGISTER_EMAIL_INTENT_KEY);
if (email != null && !email.isEmpty()) {
// We have the valid email ID, no need to take it from user,
// prepare transparent activity just to perform bg tasks required for login
setTheme(R.style.Theme_Transparent);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
} else
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dummy);
}
এখানে একটি গুরুত্বপূর্ণ পয়েন্ট মনে রাখবেন : আপনাকে অবশ্যই setTheme()
আগে ফাংশনটি কল করতে হবে super.onCreate(savedInstanceState);
। আমি এই পয়েন্টটি মিস করেছি এবং আমার থিমটি রান সময়ে কেন প্রতিফলিত হয় না তা ভেবে 2 ঘন্টা ধরে আটকালাম।
ইন onCreate ফাংশন, নিচের setContentView , এই লাইন যোগ করুন:
getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
আমি খুঁজে পেয়েছি সবচেয়ে সহজ উপায় অ্যান্ড্রয়েড ম্যানিফেস্টে ক্রিয়াকলাপের থিম সেট করা android:theme="@android:style/Theme.Holo.Dialog"
।
তারপরে ক্রিয়াকলাপের অনক্রিট পদ্ধতিতে কল করুন getWindow().setBackgroundDrawable(new ColorDrawable(0));
।
সংলাপ ক্রিয়াকলাপের জন্য আমি এটি ব্যবহার করি:
getWindow().getDecorView().setBackgroundResource(android.R.color.transparent);
তবে আপনাকে অদৃশ্য হয়ে যাওয়ার জন্য ক্রিয়াকলাপে আপনার মূল দৃষ্টিভঙ্গিও সেট করতে হবে। অন্যথায় পটভূমি অদৃশ্য হয়ে যাবে তবে এতে সমস্ত দর্শন দৃশ্যমান হবে।
উপরের উত্তরগুলি ছাড়াও:
ক্রিয়াকলাপে অ্যান্ড্রয়েড ওরিও সম্পর্কিত ক্রাশ এড়াতে
<style name="AppTheme.Transparent" parent="@style/Theme.AppCompat.Dialog">
<item name="windowNoTitle">true</item>
<item name="android:windowCloseOnTouchOutside">false</item>
</style>
<activity
android:name="xActivity"
android:theme="@style/AppTheme.Transparent" />
আমি সবেমাত্র দুটি কাজ করেছি এবং এটি আমার ক্রিয়াকলাপটিকে স্বচ্ছ করে তুলেছে। তারা নীচে আছে।
মেনিফেস্ট ফাইলে আমি কেবলমাত্র ক্রিয়াকলাপ ট্যাগের নীচের কোডটি যুক্ত করেছি ।
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
এবং আমি এই ক্রিয়াকলাপের জন্য " # 80000000 " হিসাবে মূল বিন্যাসের ব্যাকগ্রাউন্ড সেট করেছি । মত
android:background="#80000000"
এটি পুরোপুরি আমার জন্য কাজ করে works
আপনি যদি ব্যবহার করে থাকেন AppCompatActivity
তবে এটিকে যুক্ত করুনstyles.xml
<style name="TransparentCompat" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>
ইন manifest
ফাইল আপনি ভালো কার্যকলাপ ট্যাগে এই থিম যোগ করতে পারেন
android:theme="@style/TransparentCompat"
আরও তথ্যের জন্য এই নিবন্ধ পড়ুন
ব্যবহার Theme.NoDisplay
করা এখনও কার্যকর হবে ... তবে কেবলমাত্র পুরানো Android ডিভাইসে। অ্যান্ড্রয়েড .0.০ এবং উচ্চতরতে, থিম.নো ডিসপ্লে ব্যবহার না করে আপনার অ্যাপ্লিকেশনটি ক্রাশfinish()
হয়ে onCreate() (or, technically, before onResume())
যাবে । এজন্যই এই প্রস্তাবটি ব্যবহার করার পরামর্শ দেওয়া হচ্ছে , যা এই সীমাবদ্ধতায় ভুগছে না । "Theme.Translucent.NoTitleBar
নোট 1: অঙ্কনযোগ্য ফোল্ডারে টেস্ট.এক্সএমএল তৈরি করুন এবং নিম্নলিখিত কোডটি অনুলিপি করুন
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<stroke android:width="2dp" />
<gradient
android:angle="90"
android:endColor="#29000000"
android:startColor="#29000000" />
<corners
android:bottomLeftRadius="7dp"
android:bottomRightRadius="7dp"
android:topLeftRadius="7dp"
android:topRightRadius="7dp" />
</shape>
// দ্রষ্টব্য: কোণ এবং আকৃতি আপনার প্রয়োজন অনুসারে।
// নোট 2: এক্সএমএল তৈরি করুন:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/test"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1.09"
android:gravity="center"
android:background="@drawable/transperent_shape"
android:orientation="vertical" >
</LinearLayout>
</LinearLayout>
আপনার ম্যানিফেস্ট ফাইলে ক্রিয়াকলাপ ট্যাগে কেবল নীচের লাইনটি যুক্ত করুন যা স্বচ্ছ দেখা দরকার।
android:theme="@android:style/Theme.Translucent"
এই সমস্ত উত্তরগুলি বিভ্রান্তিকর হতে পারে, স্বচ্ছ ক্রিয়াকলাপ এবং কোনও ইউআই ক্রিয়াকলাপের মধ্যে পার্থক্য রয়েছে।
এটি ব্যবহার করে:
android:theme="@android:style/Theme.Translucent.NoTitleBar"
ক্রিয়াকলাপটিকে স্বচ্ছ করে তুলবে তবে ইউআইকে ব্লক করবে।
আপনি যদি এটি ব্যবহার না করে কোনও ইউআইআই ক্রিয়াকলাপ চান:
android:theme="@android:style/Theme.NoDisplay"
<item name="android:windowBackground">@android:color/transparent</item>