无论屏幕尺寸如何,如何确保布局看起来都一样

时间:2016-03-25 02:20:51

标签: android

确保屏幕在mdpi,hdpi,xdpi,xxdpi中看起来相似的正确方法是什么。

我知道我应该使用“dp”,并使用资产工作室来制作图像,但是当我在模拟器上运行我的应用程序以获得hdpi时,它仍然看起来像狗屎。

我研究了一下,发现我应该制作多个布局文件夹?布局小,布局大,等等。

另外,我发现我可以创建不同的维度文件夹。

以下是我的一项活动中的一些代码:

<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: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.nordquistproductions.getcrazy_sociables.MainActivity"
android:background="@drawable/background"
android:onClick="onButtonClick">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/AppName"
    android:layout_centerHorizontal="true"
    android:textColor="#000000"
    android:textStyle="bold|italic"
    android:textSize="65sp"
    android:layout_marginTop="10dp"
    android:id="@+id/textView" />

<Button
    android:id="@+id/playbutton"

    android:text="✓"
    android:textColor="#000011"
    android:textSize="40sp"

    android:layout_width="60dp"
    android:layout_height="60dp"
    android:background="@drawable/buttonshape"
    android:shadowColor="#000011"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:clickable="true"
    android:onClick="onButtonClick"
    android:layout_above="@+id/otherappsbutton"
    android:layout_centerHorizontal="true" />

<Button

    android:id="@+id/otherappsbutton"
    android:text="Other\nDrinking\nApps"
    android:textColor="#000011"
    android:textSize="12sp"

    android:layout_width="80dp"
    android:layout_height="80dp"
    android:background="@drawable/buttonshape"
    android:shadowColor="#ffffff"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:clickable="true"
    android:onClick="onButtonClick"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Sociables"
    android:textColor="#000000"
    android:textStyle="bold|italic"
    android:textSize="55sp"
    android:id="@+id/sociables"
    android:layout_below="@+id/textView"
    android:layout_centerHorizontal="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:text="Play"
    android:id="@+id/Playtext"
    android:layout_below="@+id/playbutton"
    android:layout_centerHorizontal="true" />

<ImageView
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:scaleType="centerInside"
    android:id="@+id/imageView2"
    android:background="@drawable/penguinicon"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />

哪种技术正确?

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

这是一个用于android的git库,它提供了自动可扩展的维度 您可以将它用于小部件的高度和宽度,这将根据屏幕大小自动调整小部件/布局的大小

https://github.com/intuit/sdp

答案 1 :(得分:0)

查看Support Different Screen Sizes

定义看起来像狗屎?你的drawables是否有像素化?观点大?你可以使用RelativeLayout和wrap_content做很多事情。 我发现This是生成drawable和不同资产的好工具,因此它们在不同的显示和密度上看起来很好。

答案 2 :(得分:0)

使用以下标记可以实现您想要实现的目标

android:layout_width="match_parent"
android:layout_height="match_parent"

如果仍然如此,则无法看到屏幕始终使用整个屏幕尺寸

android:fillViewport="true"

如果您可以提供您想要实现的截图,我们可以为您提供更多帮助。 亲切的问候!