我正在研究我的android项目,并且不知道有什么叫做多屏幕支持。我认为开发一种解决方案在其他方面是相同的。但是我错了。目前我设计的应用程序使用1080 * 1920分辨率。但我希望它支持至少下面提到的所有屏幕分辨率。
480 * 800,
1080 * 1920(支持),
720 * 1280,
480 * 854,
480 * 960,
320 * 480,
1440 * 2560
那么在这方面可以做些什么。我不知道在这里发布什么代码。请指导我完成这个。谢谢
credits.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f6f6f6">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="The Team"
android:id="@+id/textView3"
android:textSize="40sp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textColor="#ff4a3b" />
<ImageView
android:layout_width="130dp"
android:layout_height="130dp"
android:layout_marginTop="8dp"
android:layout_marginRight="20dp"
android:id="@+id/imageView2"
android:src="@mipmap/ic_launcher"
android:layout_below="@+id/textView3"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="32dp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="PRAVEEN"
android:id="@+id/textView4"
android:textSize="15sp"
android:textColor="#010101"
android:layout_below="@+id/imageView2"
android:layout_alignRight="@+id/imageView2"
android:layout_alignEnd="@+id/imageView2"
android:typeface="monospace" />
<ImageView
android:layout_width="130dp"
android:layout_height="130dp"
android:layout_marginTop="8dp"
android:layout_marginLeft="30dp"
android:id="@+id/imageView"
android:src="@mipmap/ic_launcher"
android:layout_below="@+id/textView3"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="74dp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="AKASH"
android:id="@+id/textView5"
android:textSize="15sp"
android:textColor="#010101"
android:typeface="monospace"
android:layout_below="@+id/imageView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<ImageView
android:layout_width="130dp"
android:layout_height="130dp"
android:layout_marginTop="165dp"
android:layout_marginRight="20dp"
android:id="@+id/imageView3"
android:src="@mipmap/ic_launcher"
android:layout_below="@+id/textView3"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="32dp"
android:layout_marginTop="157dp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="PRANOTI"
android:id="@+id/textView6"
android:textSize="15sp"
android:textColor="#010101"
android:layout_below="@+id/imageView2"
android:layout_alignRight="@+id/imageView2"
android:layout_alignEnd="@+id/imageView2"
android:typeface="monospace" />
<ImageView
android:layout_width="130dp"
android:layout_height="130dp"
android:layout_marginTop="165dp"
android:layout_marginLeft="30dp"
android:id="@+id/imageView6"
android:src="@mipmap/ic_launcher"
android:layout_below="@+id/textView3"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="72dp"
android:layout_marginTop="157dp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="SONAL"
android:id="@+id/textView8"
android:textSize="15sp"
android:textColor="#010101"
android:typeface="monospace"
android:layout_below="@+id/imageView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="361dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="GUIDE"
android:id="@+id/textView67"
android:textSize="30sp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textColor="#ff4a3b" />
<ImageView
android:layout_width="130dp"
android:layout_height="130dp"
android:id="@+id/imageView69"
android:src="@mipmap/ic_launcher"
android:layout_below="@+id/textView67"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Prof. M.G.Huddar"
android:id="@+id/textView89"
android:textSize="15sp"
android:textColor="#010101"
android:typeface="monospace"
android:layout_below="@+id/imageView69"
android:layout_toLeftOf="@+id/textView6"
android:layout_toStartOf="@+id/textView6" />
</RelativeLayout>
</ScrollView>
答案 0 :(得分:1)
您需要创建5个文件夹。
可绘制-MDPI
可绘制-HDPI
可绘制-xhdpi
可绘制-xxhdpi
可绘制-xxxhdpi
或者您也可以使用默认文件夹
Mip映射MDPI
Mip映射HDPI
Mip映射xhdpi
Mip映射xxhdpi
Mip映射xxxhdpi
在这些所有文件夹中,您需要保持图像的比例为1:1.5:2:3:4。
所有相似的图像都有相同的名称。
现在其他事情自动完成,当有人使用360 * 480(hdpi)的设备时。然后它会自动从hdpi文件夹中获取图像。
图像示例。
如果我们拍摄图像
mdpi,100dp * 100dp。
然后是hdpi: - 150dp * 150dp
xhdpi:200dp * 200dp
xxhdpi:300dp * 300dp
xxxhdpi:400dp * 400dp
答案 1 :(得分:1)
支持多个设备令人头疼。它曾经使用hdpi,mdpi,xhdip,xxhdip来指定不同的设备大小。现在,它使用sw320dp,sw360dp,sw600dp等。 sw 代表最小宽度, dp 代表密度无关的像素。所以,
如果您在 res / layout-sw360dp 文件夹中创建布局文件 activity_main.xml ,则该文件将用于屏幕宽度为&gt; = 360dp的设备。现在,如果您创建另一个名称为 activity_main.xml 但位于文件夹 res / layout-sw600dp 的文件,则此文件将用于屏幕宽度为&gt的设备; = 600dp。
这也适用于drawable,dimen和value文件。
res / drawable-sw360dp适用于屏幕宽度> = 360dp
的设备res / drawable-sw600dp适用于屏幕宽度> = 600dp
的设备res / drawable-sw720dp适用于屏幕宽度> = 720dp
的设备等
你明白了......
关于这一点,我写了一篇post。 Official Doc。 Device Size Metrics
答案 2 :(得分:0)
Android设备有多种密度,分类为ldpi(低),mdpi(中),hdpi(高)和xhdpi(超高)。通常,设备的分辨率越高,其密度越高。所以低分辨率设备有ldpi,中等设备有mdpi等等。要实现这一点,请转到资源文件夹并创建一些名为drawable-ldpi,drawable-mdpi,drawable-hdpi,drawable-xhdpi的新文件夹,并将图像放入其中。 drawable-ldpi中的图像应具有较低的分辨率,并将自动用于分辨率较低的设备(您无需以编程方式实现此功能)。 drawable-mdpi中的图像应该具有比ldpi更高的分辨率,依此类推。像这样你可以确保每个设备都能获得正确的图像。您可以将图像放在所有这些文件夹中,而无需重命名。例如,您可以在所有这些文件夹中放置一个名为image.png的文件,当通过R.id.image访问它时,系统将自动选择它将在哪个文件夹中查找。希望这有帮助!