将视图添加到GridLayout的填充区域

时间:2014-04-15 07:57:50

标签: android android-imageview android-gridlayout

是否可以(或接受)在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 );

2 个答案:

答案 0 :(得分:0)

我要说的正确解决方案是为ImageView使用单独的行。这就是我所做的,它对我有用。

答案 1 :(得分:0)

这是您可以使用的XML布局。 GridLayout元素仅作为示例,但您可以将其用于更改计算器按钮的目的。

如您所见,LinearLayout的方向设置为垂直,layout_widthlayout_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

如果您想了解有关如何将GridView与自动调整大小的图片一起使用的更多信息,我已经制作了相关的教程。当然,你可以适应你的情况。 Here is the link to the post

希望对您有所帮助。