android - Android中如何缩放布局

标签 android layout

我开发了一个 Android 应用程序,但有时用户调用我并告诉我布局对于他们的设备不正确。原因是android运行在不同屏幕尺寸和密度的设备上。我尝试涵盖所有类型,但是当我纠正某些内容时,其他内容就会变得不正确。该死!有没有一种方法可以使用一个可绘制文件夹创建一个布局,并使用某些东西来根据不同的屏幕尺寸缩放布局?谢谢你!! 这是我的主要 xml 布局的示例:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent" android:background="@drawable/sfondo">
    <LinearLayout android:id="@+id/linearLayout2"
        android:layout_height="wrap_content" android:layout_width="match_parent"
        android:orientation="vertical">
        <LinearLayout android:id="@+id/linearLayout1"
            android:layout_height="fill_parent" android:weightSum="1"
            android:layout_width="fill_parent" android:orientation="horizontal">
            <ImageView android:layout_height="wrap_content" android:id="@+id/imageView1"
                android:src="@drawable/trovachiavi_contatti" android:layout_width="wrap_content"
                android:layout_marginTop="15dp" android:layout_marginLeft="20dp"></ImageView>
            <ImageButton android:id="@+id/infoButton"
                android:background="@null" android:layout_height="47dp"
                android:layout_marginLeft="5dip" android:layout_weight="0.25"
                android:layout_marginTop="15dip" android:src="@drawable/info_mini"
                android:layout_width="47dp">
            </ImageButton>
        </LinearLayout>
    </LinearLayout>
    <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <LinearLayout
            android:id="@+id/layoutGif"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
            <trova.chiavi.sd.GIFView
            android:layout_gravity="center" 
            android:layout_height="220dp" android:layout_width="210dp" android:id="@+id/GIFSingle"
            android:layout_marginLeft="40dp"></trova.chiavi.sd.GIFView>
        </LinearLayout>
        <LinearLayout
            android:id="@+id/layoutBanner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:orientation="vertical"
        >
            <TextView
                android:id="@+id/testoBanner"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Medium Text"
                android:layout_gravity="center"
                android:gravity="center"
                android:textAppearance="?android:attr/textAppearanceMedium" 
                android:layout_marginTop="10dp"
                android:textColor="@android:color/black"
                android:maxLines="2"/>

            <ImageView
                android:id="@+id/Banner"
                android:layout_width="match_parent"
                android:layout_height="144dp"
                android:layout_gravity="center"
                android:src="@drawable/box_codice" 
                android:layout_marginTop="5dp"
             />
        </LinearLayout>
    </RelativeLayout>
    <LinearLayout
        android:id="@+id/linearLayout3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_marginTop="1dp">
        <ImageButton
            android:id="@+id/avvia_cerca"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@null"
            android:src="@drawable/chiave"
            android:layout_gravity="center"/>
        <TextView
            android:id="@+id/testoRicercaSingle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@android:color/black" 
            android:layout_gravity="center"/>
    </LinearLayout>
</LinearLayout>

最佳答案

简短的回答是肯定的:我建议从这里开始:http://developer.android.com/training/multiscreen/index.html

特别是,在“支持不同的屏幕尺寸”页面下,请注意以下内容:

By using the "wrap_content" and "match_parent" size values instead of hard-coded sizes, your views either use only the space required for that view or expand to fill the available space, respectively.

需要一点时间来适应其中的逻辑,但一旦习惯了,效果会非常好。

关于android - Android中如何缩放布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9166624/

相关文章:

java - 更改包中 Activity 的操作栏颜色

java - BoxLayout 忽略 setYAlighment

java - 在 Swing 中使用具有绝对布局的滚动条

css - 转到子链接时 Laravel CSS 不起作用

android - 如何在操作栏的水平中心设置文本

android - 安装错误 : INSTALL_FAILED_MISSING_SHARED_LIBRARY

templates - 如何获得网站切换器而不是商店切换器?

支持节点大小的Java/JavaScript图形布局库

android - 如何从 Android NDK 获取 Assets 中的文件

java - 尝试通过 MediaStore.createDeleteRequest(getContentResolver(), uris) 为 Android R (API 30) 创建删除请求以进行范围存储