0

我正在使用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"/>

如果我使用具有相同属性的 ImageButton 或 ImageView 没有关系,所以我将讨论 ImageButton。

如果我使用 ImageButton,我会得到我想要的,除了背景是灰色的。 在此处输入图像描述

如果我在以前的 custom_view.xml 中添加一行,以获得透明背景(或改用 ImageView)

android:background="#00000000"

图标中的 alpha 将被“裁剪”并且按钮的大小将发生变化。 在此处输入图像描述

问题是。如何获得具有第一张图像(具有默认灰色背景)但具有透明背景的大小的按钮?

解决问题的方法之一是使按钮背景的颜色与操作栏的颜色相同,它看起来像透明的,但我认为这不是一个好的解决方案。

4

3 回答 3

0

您是否考虑过使用 ImageView 而不是 ImageButton?只需在 imageview 中设置所需的图像并使用 onclicklistener 来检测点击,就像对 ImageButton 所做的那样。

此外,您还可以指定 ImageButton 的宽度并根据需要设置填充(如果您想使用 android:background="#00000000")。

于 2012-10-15T21:04:39.777 回答
0

您可以使用具有透明背景的图像。它可以在Photoshop中完成。

于 2012-10-15T19:15:04.870 回答
0

我认为您可以添加到按钮

android:background="yourimagethere"; 或者也许 android:background=NULL

它会解决问题

于 2013-05-15T12:15:12.007 回答