How to set Image As Status Bar Background - android

I Have set an image in my ActivityMain.xml, and there is no action bar theme is used. I want
The photo that I set in the background this image will show the background of the status bar.

You need can achieve that by following steps:
Declare one theme in your styles.xml
<style name="FullScreenTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="colorPrimary">#color/background</item>
<item name="colorPrimaryDark">#color/background</item>
<item name="colorAccent">#color/primary</item>
<item name="colorControlActivated">#color/primary</item>
<item name="android:windowLightStatusBar" tools:targetApi="m">false</item>
<item name="android:windowTranslucentNavigation" tools:targetApi="kitkat">true</item>
<item name="android:statusBarColor" tools:targetApi="lollipop">#android:color/transparent</item>
</style>
Note: android:windowTranslucentNavigation is important attribute here.
Now in your activity xml's parent layout, add android:fitsSystemWindows="true" to fill your UI in full screen.
in your Activity class, inside onCreate Method, need to set NO_LIMIT flag like this;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
setContentView(R.layout.your_xml);
}
Now set this theme your class from android manifest.
<activity
android:name=".YourActivity"
android:theme="#style/FullScreenTheme" />
Hope, this will helps you.

What I assume from your question is that you want to achieve a Full Screen Activity with your blue color as background of status bar for that you can set your status bar to transparent and your screen to stretch out to full screen
window?.decorView?.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
window.statusBarColor = Color.TRANSPARENT

Related

How to fix Tab Activity action bar up color in Android?

Above action bar, white color is displaying. I want to fix that one. Please check
attached image file.
Thanks in Advance Image Here
Try this:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.parseColor("#39bf96"));
}
However if you want to hide those Action Bar or Status Bar, this would help
add this line into your style resources file.
<style name="AppFullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">#null</item>
</style>
and then make sure you change the theme in your AndroidManifest file.
Example
<activity android:name=".MainActivity"
android:label="#string/mainPageName" //Your Activity Name
android:theme="#style/AppTheme.NoActionBar"> //Change HERE
</activity>

Android Programming: How to make navigation bar fully transparent in Android Nougat

I want to make the navigation bar fully transparent in my app. I have tried the other answers, but they only make the status bar fully transparent and the navigation bar still has a dark half-transparent color. Here is my code:
styles.xml:
<style name="AppTheme" parent="android:Theme.Material.Light.NoActionBar">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:navigationBarColor">#android:color/transparent</item>
<item name="android:statusBarColor">#android:color/transparent</item>
</style>
Activity.java:
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
Here is the result I'm trying to get: goal
and here is the result I'm currently getting: result
Is there any way to achieve a fully transparent navigation bar?
Try to set <item name="android:android:windowTranslucentStatus">true</item> set android:statusBarColor to #android:color/transparent.
Then add code below:
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
If you also want the navigation bar to be translucent, set android:navigationBarColor to #android:color/transparent and combine the flag View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION as well.
Try it may it will work.

Android Studio action bar in dialog appears after expanding dialog size

I have a tabbed activity with my custom theme that looks like this
This is the styles.xml for that theme
<style name="myCustomDialog" parent="Theme.AppCompat.Dialog">
<item name="colorPrimaryDark">#color/MyTransparent</item>
<item name="windowNoTitle">true</item>
<item name ="android:textColor">#color/PaleBlack</item>
<item name="android:editTextColor">#color/PaleBlack</item>
<item name="android:buttonStyle">#style/myCustomButon</item>
</style>
I used this line of code to expand the size of the dialog
getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
But when I do, I get a black bar at the top, which I think is the action bar, because when I set the colorPrimaryDark to transparent, it turned grey. It looks like this
How can I get rid of the bar?
Try this:
Window window = getWindow();
// clear all flags but dim behind
window.setFlags(FLAG_DIM_BEHIND, Integer.MAX_VALUE);

How to change the color of the status bar in Android?

I would like to change the color of highlighted bar in Android Studio:
How can i do it?
You can change it by setting the android:statusBarColor or android:colorPrimaryDark attribute of the style you're using for your app in styles.xml.
(android:statusBarColor inherits the value of android:colorPrimaryDark by default)
For example (since we're using an AppCompat theme here, the android namespace is omitted):
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimaryDark">#color/your_custom_color</item>
</style>
On API level 21+ you can also use the Window.setStatusBarColor() method from code.
From its docs:
For this to take effect, the window must be drawing the system bar
backgrounds with
WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS and
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS must not be set.
If color is not opaque, consider setting
View.SYSTEM_UI_FLAG_LAYOUT_STABLE and
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN.
To set these flags you could do something like this:
// getWindow() is a method of Activity
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
The status bar is a system window owned by the operating system.
On pre-5.0 Android devices, applications do not have permission to alter its color, so this is not something that the AppCompat library can support for older platform versions. The best AppCompat can do is provide support for coloring the ActionBar and other common UI widgets within the application.
On post-5.0 Android devices,
Changing the color of status bar also requires setting two additional flags on the Window; you need to add the FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag and clear the FLAG_TRANSLUCENT_STATUS flag.
Window window = activity.getWindow();
// clear FLAG_TRANSLUCENT_STATUS flag:
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// add FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag to the window
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
// finally change the color
window.setStatusBarColor(activity.getResources().getColor(R.color.my_statusbar_color));
You can also add these lines of code in the main activity
if (Build.VERSION.SDK_INT >= 21)
{
getWindow().setStatusBarColor(ContextCompat.getColor(this,R.color.statusbar)); //status bar or the time bar at the top (see example image1)
getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.dark_nav)); // Navigation bar the soft bottom of some phones like nexus and some Samsung note series (see example image2)
}
example image1 setStatusBarColor
example image2 setNavigationBarColor
add the status bar color to your style and done
<item name="android:statusBarColor">#color/black</item>
this is for API level 21+
changing status bar color is available just for android above lollipop
1.you can change status bar color programmatically by this line:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(ContextCompat.getColor(context, R.color.your_color));
}
2.you can do this with an smooth transition animation:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
int startColor = getWindow().getStatusBarColor();
int endColor = ContextCompat.getColor(context, R.color.your_color);
ObjectAnimator.ofArgb(getWindow(), "statusBarColor", startColor, endColor).start();
}
3.or you can add this to your theme style in values/styles.xml file. item colorPrimaryDark will be used for your app status bar color
<item name="colorPrimaryDark">#color/colorPrimaryDark</item>
<item name="colorPrimaryDark">#color/your_color</item>
will only be visible in Lollipop and greater than Lollipop(API) devices.
P.S. you need to have Theme.AppCompat as your base/main theme
If you use custom actionBar so you can try this one.
<style name="AppThemeBrowser" parent="Theme.AppCompat.NoActionBar">
<item name="android:statusBarColor">#color/colorPrimaryDark</item>
<item name="colorPrimary">#color/colorPrimary</item>
<item name="colorPrimaryDark">#color/colorPrimaryDark</item>
</style>
Or if you use AppTheme actionBar so, you can try this one
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:statusBarColor">#color/colorPrimaryDark</item>
------------------------------------
</style>
Hope this will help you.
HappyCoding
Change it in the themes as usual, like not using jetpack compose.
colorPrimary and colorPrimaryVariant in themes and themes night.
<style name="Theme.AndroidDevChallenge" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">#color/SweetRed</item>
<item name="colorPrimaryVariant">#color/SweetRedDarker</item>
<item name="colorOnPrimary">#color/black</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">#color/teal_200</item>
<item name="colorSecondaryVariant">#color/teal_200</item>
<item name="colorOnSecondary">#color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
Right click theme folders in the values folder, which is in the res folder :|
<!--write something like this in the color.xml, with your own color code-->
<color name="status_bar_light">#FFea80fc</color>
<color name="status_bar_dark">#FF263238</color>
In themes.xml, change colorPrimaryVariant to this
<item name="colorPrimaryVariant">#color/status_bar_light</item>
Add this in theme.xml(night)
<item name="colorPrimaryVariant">#color/status_bar_dark</item>
And there you have it, happy coding ;)
To change the color for particular activity just use
app:statusBarBackground="#color/colorPrimaryDark"
or any other color value in place of #color/colorPrimaryDark in the mail layout file of your desired activity in the parent layout tag like in my case default it was CoordinatorLayout which is parent of all (Keep all other layout within this CoordinatorLayout otherwise it may not work)
Hope this helps, this worked in my case although i'm not completely sure how.
Note:- Status bar color is supported on api level 19 or 21 and above api level.
Please check this Link : change status bar color

WindowActivityBar=false not working

I'm writing an app which will be on embedded device, and I need to remove ActionBar alongside the TitleBar and ContentOverlay.
I found a solution and inserted the following in my styles:
<style name="NoActionBar" parent="#android:style/Theme.Holo.Light">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">#null</item>
</style>
and also add the line to my activity in AndroidManifest:
android:theme="#style/NoActionBar"
and in the end I got no title bar, no content overlay, however the ActionBar is still there. Please advice. I use android:theme="#android:style/Theme.Holo.Light" and my targetSdkVersion is 18.
Small mistakes in XML can cause very strange problems,
which are not always reported accurately by the build process.
I tend to shy away from changing XML, when I can do it in java.
Java gives you more control.
programmatically remove action bar
----------------------------------
from normal activity
getActionbar().hide();
getActionbar().show();
if your using support activity
getSupportActionBar().hide();
getSupportActionBar().show();
and from the Fragment you can do it
getActivity().getActionbar().hide();
getActivity().getActionbar().show();
remove title bar
----------------
public class ActivityName extends Activity {
#Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// remove title
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
}
}
ActionBar ContentOverlay
------------------------
1) Request for actionbar overlay programmatically by calling
getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
// this 'requestFeature()' must be requested from your activity 'onCreate()' method
// before calling for 'setContentView(R.layout.my_layout)':
2) set the actionbar color by calling setBackgroundDrawable() like so:
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00212121")) );
Try changing your style's parent like this :
parent="#android:style/Theme.Holo.Light.NoActionBar"
Example
<style name="NoActionBar" parent="#android:style/Theme.Holo.Light.NoActionBar">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">#null</item>

Categories

Resources