[英]How to support different screens sizes AND different densities on Android
[英]How to make an image support different screens sizes or densities in Android?
我制作了一個包含3張圖片的XML文件。 首先,即使我在圖像尺寸上使用“ dp”,我也不清楚為什么不同屏幕尺寸的圖像尺寸會有所不同。 因此,接下來我要做的是,為不同的屏幕尺寸制作了不同的布局文件。 我還看到的問題是,從3.5英寸到5英寸的大多數屏幕都是由normal \\ something.xml處理的。 並且在3.5英寸屏幕上顯示的圖像尺寸不同於5英寸屏幕。
這是XML文件normal \\ something.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#add8e6"
android:orientation="vertical"
android:id="@+id/mood">
<TextView
android:layout_width="match_parent"
android:layout_height="15dp"
/>
<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="33sp"
android:text="How's your Mood ?"
android:gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="30dp"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginTop="15dp"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:orientation="horizontal"
android:id="@+id/happyLayout"
android:background="#85a9b4">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:id="@+id/happyRadio"
android:textSize="30sp"
/>
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/happy"
android:layout_marginLeft="30dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:orientation="horizontal"
android:id="@+id/sickLayout">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:id="@+id/sickRadio"/>
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/sick"
android:layout_marginLeft="30dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:orientation="horizontal"
android:id="@+id/sadLayout">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:id="@+id/sadRadio"/>
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/sad"
android:layout_marginLeft="30dp"/>
</LinearLayout>
<Button
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:background="#f4880d"
android:text="ADD MOOD"
android:textColor="#ffffff"
android:textSize="30sp"/>
</LinearLayout>
上面的文件適用於普通屏幕尺寸。 對於大屏幕和小屏幕,只需將圖像的尺寸更改為較低或較高的“ dp”值(如果此方法不正確,請更正我)。
如果您可以建議我應采用的方法來處理不同屏幕尺寸和密度的圖像尺寸,那就太好了。
使用像一些工具, 這樣 ,你可以為所有的屏幕圖像。 另請參閱官方文檔以獲取更多幫助。
對於圖片,請相應地放置圖片
res/drawable-mdpi/graphic.png // bitmap for medium-density
res/drawable-ldpi/graphic.png // bitmap for large-density
res/drawable-hdpi/graphic.png // bitmap for high-density
res/drawable-xhdpi/graphic.png // bitmap for extra-high-density
res/drawable-xxhdpi/graphic.png // bitmap for extra-extra-high-density
還請記住
xlarge screens are at least 960dp x 720dp
large screens are at least 640dp x 480dp
normal screens are at least 470dp x 320dp
small screens are at least 426dp x 320dp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.