ImageButton (ImageView) в пользовательском макете для actionbarsherlock

Я использую 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"

Альфа-значок будет «обрезан», а размер кнопки изменится. введите здесь описание изображения

Вопрос в следующем. Как сделать кнопку таких размеров, как на первом изображении (с серым фоном по умолчанию), но с прозрачным фоном?

Один из способов решить проблему — сделать цвет фона кнопки таким же, как цвет панели действий, и он будет выглядеть прозрачным, но я не думаю, что это хорошее решение.


person nicolausYes    schedule 15.10.2012    source источник


Ответы (3)


Вы можете использовать изображение с прозрачным фоном. Это можно сделать в фотошопе.

person Shikha Shah    schedule 15.10.2012
comment
Эм, что? Я использую изображения из Пакета значков панели действий Что мне делать с ними в фотошопе? - person nicolausYes; 15.10.2012

Рассматривали ли вы возможность использования ImageView вместо ImageButton? Просто установите нужное изображение в представлении изображений и используйте onclicklistener для обнаружения кликов, как если бы вы делали это для ImageButton.

Кроме того, вы также можете просто указать ширину вашего ImageButton и установить необходимые отступы (это если вы хотите использовать android:background="#00000000").

person Vishwa Patel    schedule 15.10.2012

я думаю, что вы можете добавить к кнопке

android:background="вашеизображениездесь"; или, может быть, андроид: фон = NULL

и это решит проблему

person D4rWiNS    schedule 15.05.2013