2010-09-12 10 views
12

quiero mostrar una tabla con algunos campos de ser editable - ver este ejemplo:Android: ¿Cómo cambiar el tamaño de texto en un campo EditText?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" 
android:paddingLeft="1dip" 
android:paddingRight="1dip" 
android:paddingBottom="1dip" 
android:background="#F00" 
> 
<ScrollView 
    android:id="@+id/ScrollView01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:scrollbars="vertical" 
    > 
    <HorizontalScrollView 
    android:id="@+id/HorizontalScrollView01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:scrollbars="horizontal" 
    > 
    <TableLayout 
    android:id="@+id/ItemPane" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="#EEE" 
    > 
    <TableRow 
    android:id="@+id/DataRow" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"  
    android:background="#888" 
    android:layout_margin="0dp" 
    android:gravity="left" 
    > 
    <TextView 
     android:id="@+id/NameField" 
     android:text="Fieldname" 
     android:background="#EEE" 
     android:textSize="14dp" 
     android:layout_margin="1dp" 
     android:layout_marginBottom="0dp" 
     android:paddingLeft="3dp" 
     android:paddingRight="3dp" 
    /> 
    <EditText 
     android:id="@+id/DataField" 
     android:text="some field" 
     android:background="#EEE" 
     android:textSize="14dp" 
     android:layout_margin="1dp" 
     android:layout_marginBottom="0dp" 
     android:paddingLeft="3dp" 
     android:paddingRight="3dp" 
     android:singleLine="true" 
    /> 
    <EditText 
     android:id="@+id/DataField2" 
     android:text="some longish field content..." 
     android:background="#EEE" 
     android:textSize="14dp" 
     android:layout_margin="1dp" 
     android:layout_marginBottom="0dp" 
     android:paddingLeft="3dp" 
     android:paddingRight="3dp" 
     android:singleLine="true" 
    /> 
    </TableRow> 
    </TableLayout> 
    </HorizontalScrollView> 
</ScrollView> 
</LinearLayout> 

¿Por qué es el atributo TEXTSIZE ignorados en EditText campos? ¿Cómo puedo hacer que el texto en esos campos sea más pequeño, para que TODAS las celdas tengan el mismo tamaño de letra? ¿Por qué Android no respeta ese atributo, incluso si se establece explícitamente?

Michael

+0

puedo estar equivocado, pero creo que se supone que usar "14px" en lugar de "14dp" para el androide: Elemento TEXTSIZE – mtmurdock

+0

@mtmurdock, las unidades pueden ser especificados en px (píxeles), dp (píxeles independientes de la densidad), sp (píxeles escalados según el tamaño de fuente preferido), pulgadas (pulgadas) y mm (milímetros). (Fuente: http://developer.android.com/reference/android/widget/TextView.html#attr_android:textSize) – Brian

+0

Se debe evitar "px" a toda costa, para compatibilidad con dispositivos DPI diferentes. – warbi

Respuesta

7

Try 'dip' en lugar de 'dp' para la propiedad Tamaño del texto. No sé por qué, pero a veces el uso de 'dp' no tiene efecto, a pesar de que la documentación dice que esos dos son iguales. Así que siempre uso 'dip'.

+0

Estoy de acuerdo ............. dp y px no aparece en algún momento – viv

+0

Esta respuesta es correcta, me funcionó – znat

+0

¿cómo es que el TAMAÑO DE TEXTO se mide en "dp" o "dip", como Hasta donde yo creo que debería especificarse con "sp" – candy

15

Creo que debería usar sp en lugar de dp. androide: TEXTSIZE = "20SP"

+0

+1, esto funcionó para mí. –

+0

mal, dp fijo unidades, sp se ve afectado por la configuración del usuario - bajo accesibilidad (para personas con problemas de visión) – Wops

1

Pruebe lo siguiente en su main_Activity.java

final Button btpls=(Button) findViewById(R.id.btpls); 

btpls.setOnClickListener(new OnClickListener(){ 
    public void onClick(View t){ 
     float i=textfield.getTextSize(); 
     textfield.setTextSize(i+1) ; 
    } 
}); 

final Button btmins=(Button) findViewById(R.id.btmins); 

btmins.setOnClickListener(new OnClickListener(){ 
    public void onClick(View t){ 
     float n=textfield.getTextSize(); 
     textfield.setTextSize(n-1); 
    } 
}); 
0

sistema estúpida no me deja downvote o comentario.

sp también es independiente de la densidad. La diferencia entre sp y dp es que sp se escala de acuerdo con las preferencias de tamaño de fuente del usuario. Esto significa que todas las fuentes y los elementos de la interfaz de usuario que necesitan escalar con el tamaño de la fuente, deben hacerse en unidades sp. Solo los elementos que no deberían escalarse con el tamaño de fuente se deben hacer en unidades dp.

0

En su styles.xml

<style name="HintTextSize" parent="TextAppearance.Design.Hint"> 
     <item name="android:textSize">16sp</item> 
     <item name="android:paddingLeft">16sp</item> 
    </style> 

<android.support.design.widget.TextInputLayout 
    android:id="@+id/trailer_one_text_input_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    **app:hintTextAppearance="@style/TextLabel" 
    android:layout_marginTop="10dp"> 

     <EditText 
      android:id="@+id/edit_text_trailer_one" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:hint="@string/trailer_one" 
      android:inputType="text" 
      android:singleLine="true" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textColor="@color/DrivingDarkGrey"/> 
    </android.support.design.widget.TextInputLayout> 
Cuestiones relacionadas