2014-01-08 19 views
8

sollte das ActionBar Symbol imageenter image description hereWie ändere ich die actionBar-Symbolgröße?

mögen Wenn die Geräteauflösung 1920x1080 und Android 4.2 oben ist, sieht die Symbolgröße sehr klein: imageenter image description here

(android 4.1 ist korrekt)

Meine Problem scheint wie i-want-to-change-actionbar-icon-size.

Das Symbol Bildgröße 113x40, dann verwende ich getActionBar() getHeight() zu bekommen ActionBar Höhe ist 56.

menu.xml.

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

<item 
    android:id="@+id/menu_buyer" 
    android:icon="@drawable/buyer_bts" 
    android:showAsAction="ifRoom"/> 
<item 
    android:id="@+id/menu_exhibition_bt" 
    android:icon="@drawable/exhibition_bt" 
    android:showAsAction="ifRoom"/> 
<item 
    android:id="@+id/menu_oj" 
    android:icon="@drawable/download_bt" 
    android:showAsAction="ifRoom"/> 

Ich habe versucht, folgende Methode funktioniert aber nicht:

  1. Erstellen Sie größeres Symbol Bild (ex.170x60) dann in Zeichen- setzen hdpi (xhdpi, xxhdpi ... usw.) Ordner

  2. Verwenden Sie menu.findItem (R.id.menu_buyer) .setIcon (resizeImage (int resId, int w, int h)); um die Größe Symbol

  3. hat einen Stil < item name = "android: actionBarSize" kann> 200dp </item> in style.xml dann gesetzt Thema in Manifest-Datei

Gibt es eine Möglichkeit zeigen, das Symbol richtig?

Antwort

0

Bitte behalten Sie Bild mit Größen und Auflösung. Wie:

- drawable-ldpi (it need resolution or ppi is ~120)(keep small size image) 
- drawable-mdpi (it need resolution or ppi is ~160)(keep normal size image) 
- drawable-hdpi (it need resolution or ppi is ~240)(keep larger size image) 
- drawable-xhdpi (it need resolution or ppi is ~320)(keep xlarger size image) 

können Sie studieren auch diese Referenz Link http://developer.android.com/guide/practices/screens_support.html

8

Zu spät zu beantworten, aber, fand ich die Antwort

die Art und Weise ganz einfach war. 1. konvertieren Sie Zeichens in Bitmap, ändern Sie die Größe und konvertieren Sie es erneut in Zeichen, und rufen Sie das Menüelement auf, und legen Sie das Symbol als neues Zeichen fest.

Ihre Aktivität diese Größe neu Methode hinzufügen,

private Bitmap resizeBitmapImageFn(
     Bitmap bmpSource, int maxResolution){ 
    int iWidth = bmpSource.getWidth(); 
    int iHeight = bmpSource.getHeight(); 
    int newWidth = iWidth ; 
    int newHeight = iHeight ; 
    float rate = 0.0f; 

    if(iWidth > iHeight){ 
     if(maxResolution < iWidth){ 
      rate = maxResolution/(float) iWidth ; 
      newHeight = (int) (iHeight * rate); 
      newWidth = maxResolution; 
     } 
    }else{ 
     if(maxResolution < iHeight){ 
      rate = maxResolution/(float) iHeight ; 
      newWidth = (int) (iWidth * rate); 
      newHeight = maxResolution; 
     } 
    } 

    return Bitmap.createScaledBitmap(
      bmpSource, newWidth, newHeight, true); 
} 

und fügen Sie die Arbeit in der onCreateOptionsMenu

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 

    Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_navigation_drawer); //Converting drawable into bitmap 
    Bitmap new_icon = resizeBitmapImageFn(icon, 50); //resizing the bitmap 
    Drawable d = new BitmapDrawable(getResources(),new_icon); //Converting bitmap into drawable 
    menu.getItem(0).setIcon(d); //choose the item number you want to set 
    return true; 
} 
+0

funktioniert nicht auf 4.4 – Machado

+0

@Holmes Oh wirklich, ich habe es noch nicht ausprobiert in 4.4, aber dann, weißt du warum? –