2012-04-28 36 views
31

Tôi đang triển khai ActionBarsherlock và tôi muốn thay đổi nền thanh tác vụ.ActionBarSherlock - thanh tác vụ tùy chỉnh nền với dải phân cách

Tôi ghi đè thuộc tính nhưng dải phân cách màu xanh dương sẽ biến mất. Làm thế nào tôi có thể sử dụng nền tùy chỉnh với bộ chia màu xanh?

<style name="Theme.MyTheme" parent="Theme.Sherlock.ForceOverflow"> 
    <item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item> 
    <item name="android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item> 
</style> 

<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar"> 
    <item name="android:background">#ff3e3f3d</item> 
    <item name="background">#ff3e3f3d</item> 
</style> 

Trả lời

7

Việc chia màu xanh là nền theo mặc định. Đó là bản vẽ 9 bản có thể vẽ được và đảm bảo rằng dòng luôn xuất hiện ở cuối thanh tác vụ bất kể chiều cao của nó là bao nhiêu.

Trong trường hợp của bạn, tôi sẽ sao chép nền mặc định .png từ Android và sau đó sửa đổi chúng sao cho phần có thể mở rộng của bản vá 9 là màu nền đích của bạn. Điều này sẽ điền vào thanh hành động với màu sắc mong muốn của bạn trong khi duy trì biên giới màu xanh ở phía dưới.

+0

Cảm ơn, tôi sẽ sao chép nền mặc định và sửa đổi chúng. – ikarius

76

Đối với bất cứ ai (như tôi) không chơi xung quanh với hình ảnh 9-patch thưởng thức, bạn có thể nhận được chia ở dưới cùng của thanh tác vụ sử dụng một drawable xml:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Bottom Line --> 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/action_bar_line_color" /> 
     </shape> 
    </item> 

    <!-- Color of your action bar --> 
    <item android:bottom="2dip"> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/action_bar_color" /> 
     </shape> 
    </item> 
</layer-list> 

Lưu này như drawable/action_bar_background.xml, Sau đó áp dụng nó trong chủ đề của bạn:

<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar"> 
    <item name="android:background">@drawable/action_bar_background</item> 
    <item name="background">@drawable/action_bar_background</item> 
</style> 
+0

Đây chính là điều tôi đang tìm kiếm! – Karen

+0

Đã tìm kiếm một tuần cho một cái gì đó như thế này, điều này thực sự tốt! –

+0

cách đăng ký trong chủ đề của chúng tôi, cập nhật mã –

17

http://jgilfelt.github.io/android-actionbarstylegenerator/

dự án này có thể được sử dụng để tạo ActionBar phong cách mà bạn cần.

+1

Cảm ơn bạn rất nhiều vì điều này đó là chính xác những gì tôi đã tìm kiếm, làm cho theming một địa ngục dễ dàng hơn rất nhiều! – AndroidNoob

+0

Cảm ơn rất nhiều vì đã chia sẻ. Đây chính xác là những gì tôi cần! – Vivendi

+0

Có hướng dẫn nào về cách sử dụng không ?? Tôi không biết phải sao chép những hình ảnh này và đặt chúng. –

3

Chỉ cần cập nhật câu trả lời do DanielGrech cung cấp. Nó cũng có thể sử dụng đồ họa tùy chỉnh của riêng bạn ở dưới cùng của thanh hành động. Như thế này:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Bottom Line with custom graphic instead of a solid color--> 
    <item android:drawable="@drawable/bar"> 
      <shape android:shape="rectangle"/> 
    </item> 

    <!-- Color of your action bar --> 
    <item android:bottom="2dip"> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/action_bar_color" /> 
     </shape> 
    </item> 
</layer-list> 
Các vấn đề liên quan