2010-09-12 44 views
12

我想显示一些领域是可编辑的表格 - 看到这个例子: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> 

为什么TEXTSIZE属性忽略了的EditText字段?如何使这些字段中的文本更小,以便所有单元格具有相同的字体大小?为什么Android不尊重该属性,即使明确设置?

Michael

+0

我可能是错的,但我相信你应该使用“14px的”,而不是“14dp”为Android:TEXTSIZE元素 – mtmurdock 2010-09-12 19:56:27

+0

@mtmurdock,可以指定单位(像素),dp(密度无关像素),sp(基于首选字体大小的缩放像素),单位为英寸和毫米(毫米)。 (来源:http://developer.android.com/reference/android/widget/TextView.html#attr_android:textSize) – Brian 2010-09-12 22:47:53

+0

为了与不同的DPI设备兼容,应该不惜一切代价避免“px”。 – warbi 2013-10-22 12:03:55

回答

7

尝试'dip'而不是'dp'for textSize属性。我不知道为什么,但有时使用'dp'不起作用,尽管文档说这两者是平等的。所以我总是使用'​​dip'。

+0

我同意............. dp和px donot有时会出现 – viv 2010-09-13 10:06:20

+0

这个答案是正确的,它对我有用 – znat 2012-06-22 14:00:49

+0

TEXT SIZE如何在“dp”或“dip”中测量,如尽管我相信它应该用“sp” – candy 2014-01-07 11:59:37

15

我认为你应该使用sp而不是dp。 机器人:TEXTSIZE = “20SP”

+0

+1这个工作适合我。 – 2014-03-04 07:12:15

+0

错误,dp我固定单位,sp受用户设置的影响 - 在无障碍环境下(对于有视力问题的人) – Wops 2017-01-23 07:26:49

1

尝试在你的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

愚蠢的系统不会让我downvote或评论。

sp也是密度无关的。 sp和dp的区别在于sp根据用户的字体大小首选项进行缩放。这意味着所有需要随字体大小缩放的字体和用户界面元素都应该以sp单位完成。只有不应使用字体大小缩放的项目才能以dp单位完成。

0

在你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> 
相关问题