web-dev-qa-db-fra.com

Android: Comment changer la taille du texte dans un champ EditText?

Je souhaite afficher une table avec certains champs modifiables - voir cet exemple:

<?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>

Pourquoi l'attribut textSize est-il ignoré dans les champs EditText? Comment puis-je réduire la taille du texte dans ces champs afin que TOUTES les cellules aient la même taille de police? Pourquoi Android n'honore-t-il pas cet attribut, même s'il est défini explicitement?

Michael

14
mmo

Je pense que vous devriez utiliser sp au lieu de dp. Android: textSize = "20sp"

18
Than Zaw

Essayez 'dip' au lieu de 'dp' pour la propriété textSize. Je ne sais pas pourquoi, mais parfois, utiliser «dp» n'a aucun effet, même si la documentation indique que ces deux sont égaux. Donc, j'utilise toujours 'dip'.

7
Konstantin Burov

Essayez ce qui suit dans votre 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); 
    }
});
1
samer

Dans vos 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>
0
Manikandan K

Un système stupide ne me laissera pas voter ou commenter.

sp est également indépendant de la densité. La différence entre sp et dp est que sp est mis à l'échelle en fonction des préférences de l'utilisateur en matière de taille de police. Cela signifie que toutes les polices et tous les éléments d'interface utilisateur devant être adaptés à la taille de la police doivent être créés en unités sp. Seuls les éléments qui ne doivent pas être redimensionnés avec la taille de la police doivent être exprimés en unités dp.

0
Evan Langlois