自定义ActionBar与背景图像

时间:2015-01-21 17:06:42

标签: android android-actionbar

我一直想尝试制作一个ActionBar。起初我决定将其绘制为图像(下图中的第二个动作条),但注意到在某些设备上,Image不会占用整个屏幕宽度。至于原始的ActionBar,我在我的主要Activity onCreate方法中使用了这段代码:

final ActionBar actionBar = getActionBar();
@SuppressWarnings("deprecation")
BitmapDrawable background = new BitmapDrawable (BitmapFactory.decodeResource(getResources(), R.drawable.actionbar)); 
actionBar.setBackgroundDrawable(background);
//actionBar.setIcon(android.R.color.transparent);
actionBar.setDisplayShowTitleEnabled(false);

第一个ActionBar有一个浅色主题,图像被拉伸。我怎样才能让它变得透明,有没有办法设置ActionBar高度,所以它看起来不会拉伸?我也尝试用样式做这个并且得到相同的结果。

编辑我关注了vinitius,所以我现在有了这个:result图片是482x104而我的手机是480x800。这与将其用作普通图像时发生的问题相同。图像位于drawable-hdpi文件夹中。

通过添加android:scaleType =" fitXY"

编辑2 对于ImageView,它将使整个图像延伸。

actionbar_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00000000"
android:orientation="vertical" >

<View
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:background="#3383A8" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:src="@drawable/actionbar" />

</RelativeLayout>

编辑3 如果我将图像添加为RelativeLayout背景,则填充不适合较大设备的整个宽度。如果我将它用作更大宽度设备上的图像,它将被拉伸。 Image

ActionBar

1 个答案:

答案 0 :(得分:0)

您可以设计自己的actionBar视图,甚至可以从任何xml中充气,然后只需:

    getActionBar().setCustomView(yourView);
    getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);

要调整条形的高度,您可以这样做:

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<!-- ActionBar styles -->
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">

   <!-- the height you desire according to your dimen -->

    <item name="android:height">@dimen/action_bar_height</item>
</style>

然后,应用您的主题。它对我有用