2013-03-08 21 views
15

próbowałem użyć tego koduChcę zmienić actionbar rozmiar ikon

<item 
     android:id="@+id/male_button" 
     android:layout_width="46dp" 
     android:layout_height="56dp" 
     android:layout_gravity="right" 
     android:icon="@drawable/icon_male" 
     android:showAsAction="always" 
     android:title="i"/> 
    <item 
     android:id="@+id/female_button" 
     android:layout_width="46dp" 
     android:layout_height="56dp" 
     android:layout_gravity="right" 
     android:icon="@drawable/icon_female" 
     android:showAsAction="always" 
     android:title="i"/> 

i zmieniłem android: layout_width = "46dp" na Androida: layout_width = "30dp" ale nadal mam ten sam rozmiar żądany obraz jest

enter image description here

i teraz mam ten

enter image description here

Jak zmienić ikony jako pierwsze zdjęcie?

+0

Proszę odnieść się do [tej odpowiedzi] [1]. Android: minWidth spełnia Twoje potrzeby. [1]: http://stackoverflow.com/a/10085862/1301173 – Xieyi

+0

znalazłeś jakieś rozwiązanie dla tego problemu? – Crawler

+0

Czy ktoś znalazł coś na ten temat? – Machado

Odpowiedz

0

Spójrz na this answer. Musisz ustawić rozmiar ActionBar w kompozycji aplikacji lub aktywności. Następnie powinieneś być w stanie ustawić wysokość ikon na "match_parent".

+2

proszę rozwinąć swoją odpowiedź przy pomocy niektórych kodów .... – Crawler

13

Aby zmniejszyć odstępy między ikonami działań, w pliku styles.xml należy utworzyć actionButtonStyle i odwoływać się do niego jako głównego motywu (np. "AppTheme").

1 krok (umieścić dwa zdania):

<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    ... 
    <item name="android:actionButtonStyle">@style/myActionButtonStyle</item> 
    <item name="actionButtonStyle">@style/myActionButtonStyle</item> 
    ... 
</style> 

2 etap (parametr "android: szerokość" jest wielką tajemnicą):

<style name="myActionButtonStyle" parent="Widget.AppCompat.ActionButton"> 
    <item name="android:minWidth">30dp</item> 
    <item name="android:maxWidth">48dp</item> 
    <item name="android:width">38dp</item> 
</style> 

spodoba

1
private String[] tabnames; 
final int[] ICONS = new int[] { 
     R.drawable.a, 
     R.drawable.b, 
     R.drawable.c,} 
tabnames = getResources().getStringArray(R.array.tabnames); 

Są to tablice utworzone tutaj oraz w res/values ​​/ ciągach nazw do pobrania i nazwami kart

actionBar = getActionBar(); 
    for (int i=0; i < tabnames.length; i++) 
    { 

Za każdym razem otrzymujemy tabname dodamy ikonę na to

 Drawable dr = getResources().getDrawable(ICONS[i]); 
     Bitmap bitmap = ((BitmapDrawable) dr).getBitmap(); 
     Drawable d = new BitmapDrawable(getResources(), 
     Bitmap.createScaledBitmap(bitmap, 50, 50, true)); 

Następnie zmieniamy się ikona z tablicy i sprawiają, że odkształcalne ze niezależnie od wielkości chcemy i dodać go do actionbar.

actionBar.addTab(actionBar.newTab().setText(tabnames[i]) 
          .setIcon(d) 
          .setTabListener(this)); 
    } 
1

Rozwiązałem, przenosząc pliki png do folderu drawable-xhdpi.