ActionBar
API, geçerli arka plan Drawable
veya rengini almanın bir yolunu kullanamaz.
Ancak, daha sonra, ActionBarView
almak, View.findViewById
çağrı Drawable
almak için View.getBackground
aramaya Resources.getIdentifier
kullanabilirsiniz. Yine de, bu size hala rengi vermiyor. Bunu yapmanın tek yolu, Drawable
'u Bitmap
'a dönüştürmek, daha sonra baskın rengi bulmak için bir çeşit color analyzer kullanın.
ActionBar
Drawable
'un alınmasına ilişkin bir örnek.
final int actionBarId = getResources().getIdentifier("action_bar", "id", "android");
final View actionBar = findViewById(actionBarId);
final Drawable actionBarBackground = actionBar.getBackground();
Ama kendi özelliğini oluşturabilir ve temalarda uygulamak olacaktır kolay çözüm gibi görünüyor.
Özel Ayrıntı
<attr name="drawerLayoutBackground" format="reference|color" />
sizin DrawerLayout
içeren düzeninde Sonra niteliğini
<style name="Your.Theme.Dark" parent="@android:style/Theme.Holo">
<item name="drawerLayoutBackground">@color/your_color_dark</item>
</style>
<style name="Your.Theme.Light" parent="@android:style/Theme.Holo.Light">
<item name="drawerLayoutBackground">@color/your_color_light</item>
</style>
başlat, android:background
niteliği uygular: Burada
o bir örnek böyle:
android:background="?attr/drawerLayoutBackground"
Yoksa TypedArray
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final TypedArray a = obtainStyledAttributes(new int[] {
R.attr.drawerLayoutBackground
});
try {
final int drawerLayoutBackground = a.getColor(0, 0);
} finally {
a.recycle();
}
}
actionBar.getBackground() boş beni döndürür kullanarak elde edebilirsiniz. Yanlış bir şey mi yapıyorum? – kalehv
@kalehv getActivity(). GetActionBar(). SetBackgroundDrawable (...) kullanarak bir arka plan kümeniz var mı? Eğer ayarlanmamışsa, gerçekten boş bir değer elde edersiniz. – hcpl