textAppearance有什么意义?

时间:2015-04-06 20:55:49

标签: android xml

我想创建一个xml文件,其文本在所有设备上看起来至少有点类似,给定解决方案here我明白我可以使用sp或textAppearance并让它根据屏幕重新缩放。

所以我尝试了它,在日食上它显示如下:
enter image description here

和平板电脑模拟器一样:

enter image description here


至少从我所看到的情况来看,尽管屏幕已经增长,但尺寸并没有改变,为什么呢?我怎么做才能使它在所有设备上看起来相似,我不明白textview缩放是如何工作的。

这是我的xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="top"
tools:context="${relativePackage}.${activityClass}" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="30dp"
    android:text="Large Text"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="22dp"
    android:text="Medium Text"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView2"
    android:layout_centerHorizontal="true"
    android:text="Small Text"
    android:textAppearance="?android:attr/textAppearanceSmall" />

编辑:

关于SP的相同故事:
enter image description here

enter image description here

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusableInTouchMode="true"
android:gravity="top"
tools:context="${relativePackage}.${activityClass}" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="82dp"
    android:text="100sp"
    android:textSize="100sp" />

<TextView
    android:id="@+id/TextView01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView1"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="67dp"
    android:text="15SP"
    android:textSize="15sp" />

在不同的屏幕上尺寸相同!

1 个答案:

答案 0 :(得分:0)

您可以做的最好的事情是在styles.xml中定义自己的样式。在我看来,这比完全依赖默认主题更好。它们确实从制造商变为制造商。只有使用Android操作系统的设备才能实现您的想法。

它们的大小并不相同。如果您查看styles.xml中的sdk\platforms\android-4.3\data\res\values\,您就能看到它。