我需要一些有关 Android 布局的帮助。我想要实现的是一个布局,其中灰色视图周围的视图随着屏幕尺寸的增长而增长,并且中间的视图始终居中。如果屏幕太小以至于触摸左右灰色视图的宽度应该为0...我制作了一个Imageviewer,灰色区域是图像,外部区域都有黑色背景。如果屏幕很小,图像应该与屏幕匹配。但如果它增长,图像不会缩放,但它周围的区域应该增长......我希望你明白我的意思。也许是带有水平布局的垂直线性布局?
谢谢你!
尝试这个:
开始了:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/center"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_centerInParent="true"
android:background="#343434" />
<LinearLayout
android:id="@+id/top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/center"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="#ababab" />
<LinearLayout
android:id="@+id/left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/center"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/center"
android:layout_toLeftOf="@+id/center"
android:background="#cfcfcf" />
<LinearLayout
android:id="@+id/right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/left"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/left"
android:layout_toRightOf="@+id/center"
android:background="#cfcfcf" />
<LinearLayout
android:id="@+id/bottom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/center"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:background="#ababab" />
</RelativeLayout>
您可以通过为各种屏幕尺寸设置尺寸来处理大小屏幕,例如:
值/尺寸.xml:
<resources>
<dimen name="margin"0dp</dimen>
</resources>
值-w480dp/dimens.xml:
<resources>
<dimen name="margin"3dp</dimen>
</resources>
值-w600dp/dimens.xml:
<resources>
<dimen name="margin"6dp</dimen>
</resources>
等等
现在您可以像这样在 ImageView 中设置边距:
android:layout_marginRight/Left="@dimen/margin"
不要忘记将您的 ImageView 设置为
android:gravity="center"
如果您的布局仅包含此 ImageView,那么您可以省略边距并将重力设置为中心。
如果所有外部空间都只是像您所说的那样是黑色背景,那么为什么不只使用一个以 ImageView 为中心的 RelativeLayout ,并在所有设备上保持相同的 layout_width 和 layout_height 。将 RelativeLayout 设置为黑色背景。这种方式会表现得更好,而且真的,如果你想要的只是图像周围的黑色边框,你不需要担心在其他地方有实际的布局。只要您设置固定的宽度和高度并将其居中,它就应该按照您的意愿执行。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerInParent="true"
android:src="@drawable/apache" />
</RelativeLayout>
像那样。或者,如果您想非常具体,我想使用“100px”..尽管不建议这样做。