简体   繁体   中英

Scale Action Bar background image proportionally

Im using ActionBar in my Android App, and to customize each of the tabs, i put a background image behing the ActionBar, which looks the following:

On my phone actually it looks fine, but on other phones it's look very squashed. How can i scale the ActionBar proportionally based on the background's ratio? Are there any solution for this? I had to determine the height in fix DPI because if i leave it out, the ActionBar is not even showing up. My style code is the following right now;

<style name="MyActionBar" parent="android:Theme.Holo.Light">

    <item name="android:backgroundStacked">@drawable/tab_bg</item>
    <item name="android:adjustViewBounds">true</item>
    <item name="android:scaleType">fitEnd</item>
    <item name="android:height">87dp</item>

</style>

Update:

I just do not know where to Mr.T's xml code. Im using the basic android ActionBar, and i have only one xml named menu.xml, but if i put the code into it, no effect.

I tried to style the actionbar with the following, but still, if i do not specify the android:height parameter, the actionbar remains 0 and do not showing up.

<style name="MyActionBar" parent="android:Theme.Light">
    <item name="android:backgroundStacked">@drawable/tab_bg</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:src">@drawable/tab_bg</item>
    <item name="android:scaleType">matrix</item>
</style>

The actionbar still looks like the following on some devices; http://i.imgur.com/yQN67J3.png

You might do it with either scaleType( http://developer.android.com/reference/android/widget/ImageView.ScaleType.html )

You use ImageView instead of background placing it as the first layout's element and specify android:scaleType attribute for it:

 <RelativeLayout
 android:layout_width="fill_parent"
 android:layout_height="fill_parent" >

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:src="@drawable/backgrnd"
    android:scaleType="matrix" />

...

rest layout components here

...

 </RelativeLayout>

or drawable xml

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM