Я использую actionbarsherlock.
Чтобы получить режимы действий внизу (режимы действий внизу), я использую
android:uiOptions="splitActionBarWhenNarrow"
Но мне нужно добавить кнопку на главную панель действий, поэтому я использую пользовательский вид.
View customNav = LayoutInflater.from(this).inflate(R.layout.custom_view, null);
getSupportActionBar().setCustomView(customNav, new
ActionBar.LayoutParams(Gravity.RIGHT));
getSupportActionBar().setDisplayShowCustomEnabled(true);
Вот custom_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="horizontal"
>
<ImageButton
android:id="@+id/btnMore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_action_day"
android:onClick="onMoreClick"/>
It doesn't metter if I use ImageButton or ImageView with the same properties, so I'll talk about ImageButton.
Если я использую ImageButton, я получаю то, что хочу, за исключением того, что фон серый.
Если я добавлю строку в предыдущий custom_view.xml, чтобы получить прозрачный фон (или вместо этого использовать ImageView)
android:background="#00000000"
Альфа-значок будет «обрезан», а размер кнопки изменится.
Вопрос в следующем. Как сделать кнопку таких размеров, как на первом изображении (с серым фоном по умолчанию), но с прозрачным фоном?
Один из способов решить проблему — сделать цвет фона кнопки таким же, как цвет панели действий, и он будет выглядеть прозрачным, но я не думаю, что это хорошее решение.