将View添加到GridLayout的Padding区域

问题描述 投票:0回答:2

是否可以(或可接受)在 GridLayout 的顶部填充区域顶部添加图像?

我有一个类似于计算器的 GridLayout - 有很多按钮,而且我有一个背景,使计算器看起来像是由金属制成的。我想做的就是在计算器顶部放置一个屏幕图像。

到目前为止,我已经使用了 setPadding() 方法,以便所有按钮都显示在屏幕下方,为屏幕留出足够的空间。我想我应该做的是在 GridLayout 中为屏幕创建一个新行,但我想知道:是否可以在该填充区域中的 GridLayout 顶部添加 ImageView,或者这是一个很大的“不不”并且我应该创建一个新行吗?

.. buttons already added to gridLayout
gridLayout.setBackground( drawableMetalBackground );

ImageView iv = new ImageView( this );  // 'this' context should be gridLayout context??

iv.setBackground( npdScreen );

iv.layout( 0, 0, 300, 100 );  // Hardcode positions for example
gridLayout.addView( iv );
android android-imageview android-gridlayout
2个回答
0
投票

我想说的正确解决方案是为 ImageView 使用单独的行。这就是我所做的,它对我来说效果很好。


0
投票

这里有一个 XML 布局供您使用。

GridLayout
元素只是示例,但您可以将其用于您的目的,将其更改为计算器的按钮。

如您所见,

LinearLayout
的方向设置为垂直,
layout_width
layout_height
设置为
match_parent
,这意味着两者都会占据整个屏幕。四周还有填充物,以与屏幕边缘保持距离。

<LinearLayout 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:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:orientation="vertical">

<ImageView
    android:id="@+id/imageview"
    android:layout_width="match_parent"
    android:layout_height="80dp"
    android:background="@drawable/Lighthouse"
    android:layout_marginBottom="10dp"/>

<GridLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:columnCount="4"
    android:orientation="horizontal" >
    <Button
        android:layout_column="3"
        android:text="/" />
    <Button android:text="1" />
    <Button android:text="2" />
    <Button android:text="3" />
    <Button android:text="*" />
    <Button android:text="4" />
    <Button android:text="5" />
    <Button android:text="6" />
    <Button android:text="-" />
    <Button android:text="7" />
    <Button android:text="8" />
    <Button android:text="9" />
    <Button
        android:layout_gravity="fill"
        android:layout_rowSpan="3"
        android:text="+" />
    <Button
        android:layout_columnSpan="2"
        android:layout_gravity="fill"
        android:text="0" />
    <Button android:text="00" />
    <Button
        android:layout_columnSpan="3"
        android:layout_gravity="fill"
        android:text="=" />

</GridLayout>

这是此 XML 布局的最终结果。

ImageView
上的图像背景只是我放置在可绘制文件夹中的简单图像。 enter image description here

希望对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.