2010-12-14 66 views
0

J'ai quelques icônes de hauteur variable, et la disposition tabspec par défaut sur mon HTC Legend place l'icône en haut. Je voulais le centrer en définissant ma propre mise en page pour le tabspec, mais après de nombreuses expériences avec le style &, je ne peux toujours pas le faire ressembler à la mise en page intégrée.Mise en page TabHost.TabSpec qui ressemble à la mise en page intégrée

donc j'ai besoin le Rembourrage & fond intégré pour ma mise en page de tabspec, quelqu'un sait ce qu'ils sont appelés?

+0

Définition du style sur "@android: style/Widget.TabWidget" Cause: android.content.res.Resources $ NotFoundException: Fichier res/drawable-mdpi/title_bar_shadow.9.png à partir de l'ID de ressource utilisable # 0x1030034 –

Répondre

0

Trop bidouillage - a résolu le problème en créant une hauteur fixe et icône de largeur variable pour l'onglet:

private Drawable getTabIcon(byte chainID, Resources res) { 
    BitmapDrawable chainIcon = (BitmapDrawable) res.getDrawable(ChainDisplay.getIconID(chainID)); 

    int tabIconHeight; 
    switch(res.getDisplayMetrics().densityDpi) { 
     case DisplayMetrics.DENSITY_LOW: 
      tabIconHeight = 24; 
      break; 
     case DisplayMetrics.DENSITY_MEDIUM: 
      tabIconHeight = 32; 
      break; 
     case DisplayMetrics.DENSITY_HIGH: 
      tabIconHeight = 48; 
      break; 
     default: 
      tabIconHeight = 48; 
      break; 
    } 

    Bitmap tabIconBitmap = Bitmap.createBitmap(chainIcon.getIntrinsicWidth(), tabIconHeight, Bitmap.Config.ARGB_8888); 
    new Canvas(tabIconBitmap).drawBitmap(chainIcon.getBitmap(), 0, (tabIconHeight - chainIcon.getIntrinsicHeight())/2, null); 
    return new BitmapDrawable(tabIconBitmap); 
} 

fait quelques expériences avec mise à l'échelle et Paint.ANTI_ALIAS_FLAG, mais il était laid, si le recadrage d'image a été choisi.