它是如何工作的,那个android向我展示了所有展示的盒子,无论我有4"显示或7"显示?没关系,android显示的盒子有点小,但我必须展示所有的盒子。
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1"
android:background="@drawable/box_ressourcen">
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/box"
android:id="@+id/box1"
android:showDividers="beginning"
android:layout_gravity="top"
android:layout_alignParentStart="true"
android:layout_alignParentTop="false"
android:layout_below="@+id/imageView"
android:layout_marginTop="-20dp"
android:layout_alignParentEnd="false"
android:gravity="center">
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/myimage1"
android:src="@drawable/inventar"/>
</LinearLayout>
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_alignParentStart="false"
android:src="@drawable/inventar_ressourcen"
android:layout_marginTop="-25dp" />
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/box"
android:id="@+id/box2"
android:showDividers="beginning"
android:layout_gravity="top"
android:layout_alignTop="@+id/box1"
android:layout_toEndOf="@+id/box1"
android:gravity="center">
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/imageView2"
android:src="@drawable/inventar" />
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/box"
android:id="@+id/box3"
android:showDividers="beginning"
android:layout_gravity="top"
android:layout_alignTop="@+id/box2"
android:layout_toEndOf="@+id/box2"
android:gravity="center">
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/imageView3"
android:src="@drawable/inventar" />
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/box"
android:id="@+id/box4"
android:showDividers="beginning"
android:layout_gravity="top"
android:gravity="center"
android:layout_alignTop="@+id/box3"
android:layout_toEndOf="@+id/box3">
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/imageView4"
android:src="@drawable/inventar" />
</LinearLayout>
</RelativeLayout>
我怎么能改变它,盒子显示在一条线上并在线的末端断开并转到下一行?
示例:
MyBoxes:
B1 B2 B3 B4 B5 B6 B7 B8 B9 B10
显示:
B1 B2 B3 B4
B5 B6 B7 B8
B9 B10
答案 0 :(得分:0)
对于每个尺寸,你应该做一个不同的布局,为了做到这一点你创建了另一个布局,其名称与你已经拥有的布局相同,但你添加了这样的限定符:
单击尺寸并选择所需尺寸。为每个尺寸(sall,normal,large,X-Large)执行此操作,它应该没问题。
答案 1 :(得分:0)
这取决于您的视图的大小。
由您决定是否要在屏幕尺寸中显示所有内容,或者让它在屏幕上滚动。
您可以使用XML,代码或使用两者来划分屏幕。
如果你想要你可以选择弯曲的尺寸(宽度/高度)或包裹它,当你包裹它时,它将占用其子/孩子的高度,或者你可以使用XML,代码或者再次使用比例分隔布局两者。
了解weight_sum
和layout_weight
还有如何根据屏幕尺寸为布局提供尺寸
What is android:weightSum in android, and how does it work?
https://developer.android.com/training/multiscreen/screensizes.html
https://developer.android.com/guide/practices/screens_support.html
https://developer.android.com/training/multiscreen/screendensities.html
在这个阶段,最简单的一个就是这个 https://stackoverflow.com/a/12302811/5188159还了解了如何根据屏幕大小设置大小,这将在任何屏幕中以相同的方式显示您的XML
简单的数学 - 从屏幕上分配我的布局高度10%,这样尺寸就可以保持任何一种屏幕的比例
作为代码片段,这将为您提供最新的Android视觉的屏幕尺寸高度和宽度
DisplayMetrics displaymetrics = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;
现在您可以使用比率设置有问题的尺寸 要学习它,你可以搜索;)我没有告诉你:)祝你好运!
答案 2 :(得分:0)
从你说话的方式来看,很明显你错过了理论部分。
基本上你必须为你需要的主要配置做不同的布局,在你的情况下,你需要做一个基本的配置,然后如果我很好理解一个用于较小屏幕,在你的情况下为4英寸。为了理解你应该怎么命名,我会热烈建议你去documentation英寸被认为是一个至少470dp x 320dp的正常屏幕
特别是我建议你这段经文,在那里解释为什么不是最佳做法将四英寸屏幕称为正常
为不同的屏幕尺寸提供不同的布局
默认情况下,Android调整应用程序布局的大小以适应当前的大小 设备屏幕。在大多数情况下,这很好。在其他情况下,您的UI 可能看起来不太好,可能需要针对不同的屏幕进行调整 大小。例如,在较大的屏幕上,您可能想要调整 一些元素的位置和大小,以利用额外的 屏幕空间,或在较小的屏幕上,您可能需要调整大小 所以一切都可以放在屏幕上。
可用于提供特定于大小的配置限定符 资源是小的,正常的,大的和xlarge。例如,布局 对于超大屏幕应该在layout-xlarge /.
中从Android 3.2(API级别13)开始,上面的大小组是 不推荐使用,您应该使用swdp配置 限定符,用于定义您所需的最小可用宽度 布局资源。例如,如果您的多窗格平板电脑布局 需要至少600dp的屏幕宽度,你应该把它放入 布局sw600dp /。使用新技术声明布局 资源将在“声明平板电脑”一节中进一步讨论 适用于Android 3.2的布局。
这是每位Android开发人员都应该了解的基本技能,因此我强烈建议您了解它的工作原理。