Как я могу предотвратить изменение выравнивания значков, когда фон ImageButton скрыт?

У меня есть кнопка ImageButton на панели действий моего приложения, которую я использую для имитации счетчика для смены представлений путем выбора заголовка (я использую MonoDroid.ActionBar в качестве отправной точки — http://bit.ly/UBzI77).).

ImageButton-Before

Вот XML для ImageButton.

 <ImageButton
      android:id="@+id/title_spinner_button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_toRightOf="@+id/actionbar_title"/>

Когда я делаю фон ImageButton прозрачным, добавляя атрибут android:background в XML.

 <ImageButton
      android:id="@+id/title_spinner_button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_toRightOf="@+id/actionbar_title" 
      android:background="@null"/>

Фон ImageButton исчезает, но значок центрируется по вертикали.

ImageButton-After

Кто-нибудь знает, как сделать фон ImageButton прозрачным, но сохранить значок, выровненный по нижней части ImageButton?

Заранее спасибо.


person billmaya    schedule 14.11.2012    source источник
comment
Вы играли с android:scaleType? Что-то вроде: android:scaleType="matrix". Варианты: MATRIX, FIT_START, FIT_END и т. д. Источник   -  person jnthnjns    schedule 14.11.2012


Ответы (1)


Попробуйте следующее в сочетании с нулевым фоном:

android:layout_alignParentBottom="true"
android:layout_marginBottom="3dp" // this is here just to ensure the image doesn't sit flush against the bottom of the bar, vary as required

В качестве альтернативы вы можете попробовать

android:layout_height="match_parent"
android:gravity="bottom"
person Xono    schedule 14.11.2012
comment
Xono — ваше предложение android:layout_height/android:gravity сработало. Спасибо! - person billmaya; 14.11.2012
comment
Xono — комбинация android:layout_alignParentBottom/android:layout_marginBottom помещает значок в нижнюю часть ImageButton, но независимо от того, что вы устанавливаете для marginBottom, значок не перемещается из исходного положения. - person billmaya; 14.11.2012
comment
Действительно? Это должно было сработать - на самом деле я ожидал, что первое сработает, а второе сломается, а не наоборот. Кажется, что alignParent и поля RelativeLayout не очень хорошо сочетаются друг с другом. Можно попробовать заменить marginBottom на android:paddingBottom="3dp", посмотрите, будет ли это работать лучше. - person Xono; 15.11.2012