Background
I want to show a bitmap on the left side of the title of the activity, in the actionbar (toolbar, to be exact), so I used this:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setLogo(R.mipmap.ic_launcher);
...
The problem
Thing is, the logo seems to have too much margin on its left, while the title text is very near the logo itself, so it looks like this:
This is not symmetrical at all...
This is even worse in case I have a nav drawer:
What I've tried
I tried other sizes of the icon, plus I tried to use a bitmap instead of a drawable/mipmap resource (and I actually need to use a bitmap anyway), as such:
TypedValue tv = new TypedValue(); if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) { int actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, getResources().getDisplayMetrics()); Bitmap bitmap = Bitmap.createBitmap(actionBarHeight, actionBarHeight, Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); final Paint paint = new Paint(); paint.setColor(0xffff0000); canvas.drawPaint(paint); getSupportActionBar().setLogo(new BitmapDrawable(getResources(),bitmap)); }
But I still got the same result:
I tried to use this:
toolbar.setContentInsetsAbsolute(0,0);
I tried to use this in the xml tag of the toolbar:
android:contentInsetLeft="0px" android:contentInsetStart="0px"
I also tried to play with the other values to its right&end (in order to at least make the spaces equal in size), but they don't seem to affect the logo margins at all.
Only thing that seem to help is this:
app:contentInsetStartWithNavigation="0px"
But it helps only if there is a navigation-drawer:
In the case of no navigation drawer, I still see extra space, which makes it look un-even spaces on the left of the logo compared to on its right. I tried to set this value to be negative, but it doesn't do anything in the case of no nav-drawer.
I've also tried to investigate why it has the extra space, using the "layout inspector" tool, so that I might be able to force it to have less space, but I couldn't find any padding/margins that will cause this:
The question
How do I avoid this behavior? How can I minimize/set the space on the left&right of the logo ?
Why does it occur?
Should I just use a custom view instead?