我刚刚开始使用动作栏sherlock,我一直在努力解决动作栏底部显示的边框。 我很确定问题不是由背景图像引起的。
<style name="Theme.MyTheme" parent="@style/Theme.Sherlock.Light">
<item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
<item name="android:actionBarItemBackground">@drawable/states_of_actionbar</item>
<item name="actionBarItemBackground">@drawable/states_of_actionbar</item>
<item name="actionDropDownStyle">@style/DropDownStyle</item>
<item name="android:actionDropDownStyle">@style/DropDownStyle</item>
</style>
<style name="Widget.MyTheme.ActionBar" parent="android:Widget.Holo.ActionBar">
<item name="android:background">@drawable/action_bar_bg</item>
<item name="background">@drawable/action_bar_bg</item>
<item name="android:src">@drawable/action_bar_bg</item>
</style>
我尝试在值和&amp;中定义上述样式(背景)。价值观14,但没有运气..
我的猜测是它受到全息风格的影响..
如何摆脱厚边框?
以下是澄清我问题的图片:
答案 0 :(得分:2)
我认为您尝试使用XY重复背景图像或平铺作为操作栏背景,因此问题是您的背景图像的高度不足以覆盖操作栏高度,并且该粗边框是下一个Y平铺图像的结果。
您可以通过增加图像高度来解决此问题。
或者,您可以使用类setTileModeXY(TileMode.REPEAT, TileMode.CLAMP)
中android.graphics.drawable.BitmapDrawable
的方法使图像在水平重复图像时拉伸其高度,然后应用为操作栏背景。
这里的示例代码:
void onCreate(Bundle savedInstanceState) {
BitmapDrawable bg = (BitmapDrawable)getResources().getDrawable(R.drawable.your_image); // get the image as bitmap drawable
bg.setTileModeXY(TileMode.REPEAT, TileMode.CLAMP); // set the TileMode.
getSupportActionBar().setBackgroundDrawable(bg); // applied to actionbar
}