2012-02-13 4 views
7

Tengo un ícono de inicio personalizado para mi aplicación y quiero que se alinee completamente a la izquierda de la barra de acciones, de modo que toque el borde de la pantalla. ¿Es esto posible? De ser así, ¿cómo se puede hacer? No veo nada que establezca el relleno o el margen para alinear todo el camino hacia la izquierda.¿Cómo eliminar el margen entre el icono de la aplicación y el borde de la pantalla en la Barra de acciones?

+0

hay un relleno o margen unido al icono de inicio ?? si es así eliminarlos. Por cierto, muéstrenos un código de un archivo xml y muchos aquí pueden ayudarlo. –

+0

No hay xml para eso. Acaba de agregar Android: icon = "@ dibujable/mi_concepto" al manifiesto y ab.setDisplayShowHomeEnabled (true); ab.setDisplayUseLogoEnabled (false); para la actividad – CACuzcatlan

Respuesta

5

Finalmente logré obtener esto. Debe usar una vista personalizada de la barra de acciones. En realidad es bastante fácil:

(esto es usar ActionBarSherlock, se debe trabajar con la biblioteca compat de valores también ...)

  • Primero en su res/valores/themes.xml, configurar la pantalla actionbar opciones en "Usuario":

    <item name="android:displayOptions">showCustom</item> 
    
  • a continuación, cree un archivo llamado res/layout/actionbar_layout.xml y lugar en él algo así como:

    <ImageView 
        android:id="@+id/home_icon" 
        android:layout_alignParentLeft="true" 
        android:layout_marginLeft="5dp" 
        android:layout_marginRight="5dp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        android:scaleType="centerCrop" 
        android:layout_width="wrap_content" 
        android:layout_height="fill_parent" /> 
    
    <!-- Add textviews or whatever you like here to replicate the actionbar 
        title etc. --> 
    

  • A continuación, en el código de la actividad añadir lo siguiente:

    View mActionCustomView = getSherlockActivity().getLayoutInflater() 
        .inflate(R.layout.actionbar_layout, null); 
    getSherlockActivity().getSupportActionBar().setCustomView(
         mActionCustomView); 
    
    ImageView homeIcon = (ImageView)mActionCustomView 
        .findViewById(R.id.home_icon); 
    int abHeight = getSherlockActivity().getSupportActionBar() 
        .getHeight(); 
    homeIcon.setLayoutParams(new RelativeLayout.LayoutParams(
          abHeight, abHeight)); 
    

Eso es básicamente la misma! Avísame si hay algo que dejé afuera. Hay algunos buenos beneficios de tener una vista de barra de acciones personalizable, solo se adhieren a los conceptos básicos y se verá genial.

enter image description here

+0

No necesita establecer los parámetros de diseño de homeicon, simplemente establezca los márgenes en su @ + id/home_icon en 0 (en lugar de 5dp como se muestra en el ejemplo). – scottyab

+0

No tengo themes.xml ... –

+0

@OnuraySahin Puede establecer la misma opción en el código http://developer.android.com/reference/android/app/ActionBar.html#setDisplayShowCustomEnabled%28boolean%29 – brk3

Cuestiones relacionadas