How to change Floating Action button shadow colour - android

I want to change Floating Action button shadow colour from black/grey to colorprimary/custom color of shadow ** shadow example like below image with **center blue FAB button with light blue shadow not grey shadow. But we can change the FAB button background color. But as you can see in image there is blue shadow of FAB button.I want to achive that thing.

try this :: app:backgroundTint="#color/colorAccentGrey"
where colorAccentGrey = YourColor
and put xmlns:app="http://schemas.android.com/apk/res-auto" at the beginning of the XML if you forggt,
and for Remove shadow :: app:elevation="0dp"
Hope this will help you.. :)

I think you have 2 options:
as #Uttam said, change the elevation of the FAB widget
to make a custom design and embed it as an image in your layout as shown here http://androidgifts.com/android-material-design-floating-action-button-tutorial/

None of the answer worked for me. So i worked this. anyhow it will give shadow like effect that enough for me
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="#drawable/ic_add_black"
app:elevation="0dp" // disable outside shawdow
app:borderWidth="30dp" // make borderwidth to 25dp or height of fab
app:backgroundTint="#00E5FF" // now you will see only this color with shawdow
android:backgroundTint="#00E5FF" // since border is 30dp u ll not see this color and if you want to check reduce border width to 25dp then ull see this color in center as a small dot.
/>

A simple solution is to remove the stroke(border-width), the default value is 0.5dp change it to 0dp, that is
app:borderWidth="0dp"
Refer Regular and mini FAB key properties in Material Design documentation!
Link - https://material.io/components/buttons-floating-action-button/android

Related

Floating button change attribute app:maxImageSize frome code [duplicate]

I have floating button and image inside. And I need image to change size filling all space inside like here:|
I tried different scale types but it did't work. I got this result for now.
Finally I found the solution - maxImageSize. It worked, but now I need to set Fbutton size programmatically and I can't find the way to change maxImageSize in code.
When you set the maxImageSize in the XML, you are changing the normal behavior and icon size of the FAB.
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:adjustViewBounds="true"
android:id="#+id/fab_main"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="#drawable/ic_home"
app:backgroundTint="#color/colorBottomAppBarFab"
app:fabSize="normal"
app:layout_anchor="#+id/bottom_app_bar"
app:maxImageSize="56dp"/>
The result of this code is : FAB with image size 56dp
Later to change it again but programatically, you can use ScaleType to change the icon dimensions.
Here an example in Kotlin:
fab_main.scaleType = ImageView.ScaleType.CENTER_INSIDE
And then, here is the new result:
FAB with smaller icon size
If you want to change FAB dimensions, may be using one of the following methods can help you: FAB methods
I hope this solution can help you.

Fill the transparent part of the drawable image a specific color

Currently, I have this back arrow that I'm going to use in my toolbar
What I want is to fill the middle part which a specific color which is the middle part is a transparent part.
currently what i have is this :
Drawable backArrow = getResources().getDrawable(R.drawable.ic_back);
backArrow.setColorFilter(getResources().getColor(R.color.aub_red), PorterDuff.Mode.SRC_ATOP);
getSupportActionBar().setHomeAsUpIndicator(backArrow);
it only changes the color of the white color part into the red color which is wrong. what I want to fill the transparent part a color not the non - transparent part.
Used this
Drawable backArrow = getResources().getDrawable(R.drawable.ic_back);
backArrow.setColorFilter(getResources().getColor(R.color.colorAccent), PorterDuff.Mode.LIGHTEN);
getSupportActionBar().setHomeAsUpIndicator(backArrow);
for more information click hear
you can use :
DrawableCompat.setTint(yourdrawable,getResources().getColor(R.color.primary));
in java code, or in xml tag :
android:backgroundTint="#color/primary"

remove button shadow?

Inside my app, if the button's background has a corner radius, then you can see the shadow behind it, and I am trying to remove that shadow.
I have tried:
android:stateListAnimator="#null"
style="?android:attr/borderlessButtonStyle"
android:shadowRadius="0"
But none of them works.
As you can see from the picture, the shadow is very light but visible, especially at the bottom left and right corners.
Try to use style .
<style name="MyButtonStyle" parent="#style/Widget.AppCompat.Button.Borderless"></style>
You can use TextView instead of Button. and set background and clickListener for your TextView. and u will never have this shadow .
Maybe you can set a shadow color of transparent.
But I am not sure it will be work.
Hope can help you.

Border in Floating Action Buttons

I'm creating a app with Floating action buttons for social.
and i'm having border on FAB. see:
How to remove this border?
You should just have the black f as a separate drawable, and set that as the source of the FAB. Otherwise, if you want to use the drawable that already has a circular shaped background, don't use a FAB at all, just put it in an ImageButton, with a transparent background:
android:background="#0000"
app:srcCompat="#mipmap/action_fb"
set this peoperty to your FloatingActionButton.
app:borderWidth="0dp"
add this to parent.
xmlns:app="http://schemas.android.com/apk/res-auto"

Any way to remove the grey background from ImageButtons?

I have an ImageButton and I'd like to remove the ugly (IMHO) background that surrounds the Image. I could just add an ImageView, but they're very hard to get set perfectly in a Layout like the grey one pictured. [gravity "Center" doesn't make it go to the middle, just centers it Vertically.)
So any way to remove that?
Just use android:background="#0000"
(#0000 same with #00000000)
or
ImageButton imageButton = new ImageButton(this);
imageButton.setBackgroundDrawable(null);
The default background is not transparent.
So, just add the transparent color "#00000000" as you background, then you could solve it.
p.s. #00000000 is the transparent color
<ImageButton
android:id="#+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="#drawable/icon"
android:background="#00000000"
/>
You can keep the square box and just change its color like this:
android:backgroundTint="#color/colorPrimary"
works beautifully
I'm having the same problem but now it has been solved. If you are using "android:background="#null" it will resulted of no background at all and no button pressed animation will be appeared to the user.
Just adding this line of code to make an image button become flashing upon clicked. This is the proper way to alert the user an image button has been clicked.
"android:background="?android:selectableItemBackground"
just useandroid:background="#null" in your xml
if you set the
android:background
instead of
android:src
it should overwrite the gray background
Yeah. If you drag ImageButton that will usually ask for ImageSource. But the ImageSource(android:src) doesn't remove the gray background. It is an image that should be on top of background:
Instead of that try android:background in layout XML.
please use the Draw 9-patch format for the image b'use it is provided by SDK
1. From a terminal, launch the draw9patch application from your SDK /tools directory.
2. Drag your PNG image into the Draw 9-patch window (or File > Open 9-patch... to locate the file). Your workspace will now open.
The left pane is your drawing area, in which you can edit the lines for the stretchable patches and content area. The right pane is the preview area, where you can preview your graphic when stretched.
3. Click within the 1-pixel perimeter to draw the lines that define the stretchable patches and (optional) content area. Right-click (or hold Shift and click, on Mac) to erase previously drawn lines.
4. When done, select File > Save 9-patch...
Your image will be saved with the .9.png file name.
Use like this
android:background="#android:color/transparent"
android:src="#drawable/icon"
All proposed solutions remove the ripple animation (on tap)
Settings background tint mode to 'add' will remove the background and keep ripple animation:
android:backgroundTintMode="add"
If using Xamarin Forms it can be done like this in the xaml view. Set background to transparent.
<ImageButton BackgroundColor="Transparent"

Categories

Resources