web-dev-qa-db-ja.com

Android: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>

EditTextフィールドでtextSize属性が無視されるのはなぜですか?すべてのセルのフォントサイズが同じになるように、これらのフィールドのテキストを小さくするにはどうすればよいですか?明示的に設定されていても、Androidがその属性を尊重しないのはなぜですか?

マイケル

14
mmo

Dpの代わりにspを使うべきだと思います。

Android:textSize="20sp"
19
Than Zaw

TextSizeプロパティに「dp」ではなく「dip」を試してください。理由はわかりませんが、ドキュメントにこれらの2つは等しいと記載されている場合でも、「dp」を使用しても効果がない場合があります。だから私はいつも「ディップ」を使います。

7

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

あなたの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

愚かなシステムは私に反対票を投じたりコメントさせたりすることはありません。

spも密度に依存しません。 spとdpの違いは、spがユーザーのフォントサイズの設定に従ってスケーリングされることです。これは、フォントのサイズに合わせて拡大縮小する必要があるすべてのフォントとユーザーインターフェイス要素をsp単位で実行する必要があることを意味します。フォントサイズに合わせて拡大縮小してはならない項目のみをdp単位で実行する必要があります。

0
Evan Langlois