我創建了一個在大屏幕上看起來很完美的android應用程序。但是視圖會變形,或者換句話說,在較小的屏幕上會切斷上部和下部。我可互換地使用sp和dp,但我不知道它們是不同的,如果不相同的話。作爲規則,我使用sp來表示字體和dp。但是這不起作用。 sp和dp有什麼區別,什麼時候用?提前致謝。 的XML佈局文件是什麼時候應該在佈局中使用dp或sp?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/tempLabel"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#CC66FF"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.coolweather.MainActivity" >
<TextView
android:id="@+id/actualTemp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hundred"
android:textColor="#FFFFFF"
android:textSize="150sp" />
<ImageView
android:id="@+id/degreeImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/actualTemp"
android:layout_toRightOf="@+id/actualTemp"
android:paddingTop="50dp"
android:src="@drawable/degree" />
<ImageView
android:id="@+id/imageIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/cityLabel"
android:layout_alignParentLeft="true"
android:layout_marginLeft="55dp"
android:src="@drawable/cloudy" />
<TextView
android:id="@+id/summary"
android:textSize="19sp"
android:textColor="#FFFFFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/linearLayout1"
android:layout_centerHorizontal="true"
android:layout_marginTop="38dp"
android:text="Pleasant cool day with flowers!" />
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/degreeImageView"
android:layout_below="@+id/actualTemp"
android:layout_marginTop="15dp"
android:orientation="horizontal"
android:weightSum="2" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical"
android:paddingLeft="15dp" >
<TextView
android:id="@+id/humidityLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Humidity"
android:textColor="#FFFFFF"
android:textSize="17sp" />
<TextView
android:id="@+id/humidity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="80%"
android:textColor="#FFFFFF"
android:textSize="17sp" />
</LinearLayout>
<LinearLayout
android:paddingLeft="15dp"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/precLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Rain/Snow"
android:textColor="#FFFFFF"
android:textSize="17sp" />
<TextView
android:id="@+id/prcip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="100%"
android:textColor="#FFFFFF"
android:textSize="17sp" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/timeLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/actualTemp"
android:layout_centerHorizontal="true"
android:text="At 5:00pm it will be"
android:textColor="#80FFFFFF"
android:textSize="20sp" />
<TextView
android:id="@+id/cityLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/timeLabel"
android:layout_centerHorizontal="true"
android:layout_marginBottom="37dp"
android:text="Roorkee"
android:textColor="#FFFFFF"
android:textSize="22sp"
android:layout_marginLeft="10dp" />
<ProgressBar
android:layout_marginBottom="15dp"
android:id="@+id/progressBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/imageIcon"
android:layout_centerHorizontal="true" />
<ImageView
android:id="@+id/refreshImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/progressBar1"
android:layout_centerHorizontal="true"
android:src="@drawable/refresh" />
[px,dp,dip和sp在Android中的區別?](http://stackoverflow.com/questions/2025282/difference-between-px-dp-dip-and-sp-in-android ) – 2015-02-09 17:13:21
「dp」用於總體佈局,「sp」用於字體。 – jyoon 2015-02-09 17:13:30
「sp」或「可縮放像素」用於文本。 「dp」或「密度獨立像素」用於佈局。 – 2015-02-09 17:14:32