添加图片到网格布局会改变整个布局

添加图片到网格布局会改变整个布局

问题描述:

我是新开发的Android开发人员,所以我可能错过了一个简单的问题,但我试图创建一个带有顶部图像的登录屏幕。我的布局完全符合我的要求,除了添加图像时整个布局发生变化。我已经添加了与imageview(LoginPageCharity)相同的网格设置的文本框进行测试,它与文本框完美配合,但是随后我将imageview更改为可见文本框(textView1),我的整个设置更改。你能向我解释为什么这是,如果可能的话,如何补救?先谢谢你!这是两个布局和我的代码。添加图片到网格布局会改变整个布局

The layout I want Layout after image

<?xml version="1.0" encoding="utf-8"?> 
<GridLayout xmlns:p1="http://schemas.android.com/apk/res/android" 
    p1:layout_width="match_parent" 
    p1:layout_height="match_parent" 
    p1:id="@+id/gridLayout1" 
    p1:columnCount="6" 
    p1:rowCount="10" 
    p1:alignmentMode="alignBounds" 
    p1:orientation="horizontal" 
    p1:columnOrderPreserved="true" 
    p1:rowOrderPreserved="true" 
    p1:useDefaultMargins="false"> 
    <TextView 
     p1:id="@+id/textView1" 
     p1:enabled="true" 
     p1:visibility="visible" 
     p1:layout_column="0" 
     p1:layout_columnSpan="6" 
     p1:layout_columnWeight="6" 
     p1:layout_row="0" 
     p1:layout_rowSpan="3" 
     p1:layout_rowWeight="3" /> 
    <TextView 
     p1:id="@+id/textView2" 
     p1:layout_column="0" 
     p1:layout_columnSpan="1" 
     p1:layout_columnWeight="1" 
     p1:layout_row="5" 
     p1:layout_rowSpan="1" 
     p1:layout_rowWeight="0.3" 
     p1:visibility="visible" /> 
    <Button 
     p1:text="Log In" 
     p1:id="@+id/button1" 
     p1:layout_column="1" 
     p1:layout_columnSpan="1" 
     p1:layout_columnWeight="1" 
     p1:layout_row="5" 
     p1:layout_rowSpan="1" 
     p1:layout_rowWeight="0.3" /> 
    <TextView 
     p1:id="@+id/textView3" 
     p1:layout_column="2" 
     p1:layout_columnSpan="1" 
     p1:layout_columnWeight="1" 
     p1:layout_row="5" 
     p1:layout_rowSpan="1" 
     p1:layout_rowWeight="0.3" /> 
    <Button 
     p1:text="Create Account" 
     p1:id="@+id/button2" 
     p1:layout_column="4" 
     p1:layout_columnSpan="1" 
     p1:layout_columnWeight="1" 
     p1:layout_row="5" 
     p1:layout_rowSpan="1" 
     p1:layout_rowWeight="0.3" /> 
    <TextView 
     p1:id="@+id/textView4" 
     p1:layout_column="5" 
     p1:layout_columnSpan="1" 
     p1:layout_columnWeight="1" 
     p1:layout_row="5" 
     p1:layout_rowSpan="1" 
     p1:layout_rowWeight="0.3" /> 
    <TextView 
     p1:id="@+id/textView5" 
     p1:layout_column="0" 
     p1:layout_columnSpan="6" 
     p1:layout_columnWeight="6" 
     p1:layout_row="6" 
     p1:layout_rowSpan="4" 
     p1:layout_rowWeight="4" /> 
    <EditText 
     p1:inputType="textPassword" 
     p1:id="@+id/editText1" 
     p1:layout_column="1" 
     p1:layout_columnSpan="4" 
     p1:layout_columnWeight="4" 
     p1:layout_row="4" 
     p1:layout_rowSpan="1" 
     p1:text="Password" /> 
    <EditText 
     p1:inputType="textEmailAddress" 
     p1:id="@+id/editText2" 
     p1:layout_column="1" 
     p1:layout_columnSpan="4" 
     p1:layout_columnWeight="4" 
     p1:layout_row="3" 
     p1:layout_rowSpan="1" 
     p1:text="Username" /> 
    <ImageView 
     p1:src="@drawable/redcross2" 
     p1:id="@+id/LoginPageCharity" 
     p1:layout_column="0" 
     p1:layout_columnSpan="6" 
     p1:layout_columnWeight="6" 
     p1:layout_row="0" 
     p1:layout_rowSpan="3" 
     p1:layout_rowWeight="3" 
     p1:scaleType="centerInside" 
     p1:adjustViewBounds="true" 
     p1:visibility="gone" 
     p1:cropToPadding="true" /> 
</GridLayout> 

我所做的是:

  1. 取出textView1,因为它仅仅是 “为错误检测”。

  2. 取出ImageViewvisibility属性,因为您始终想要显示它。

  3. 取出ImageViewweight属性。

这是结果:

enter image description here

这是你想要的吗?

+0

我不认为我解释得很好。我希望我的照片能够被看到,并且我希望它被放在与(textView1)相同的区域。但是,当我将图像添加到我的imageView框(其具有与textView1框相同的网格尺寸)时,网格会发生变化。 textView1仅在这里进行错误测试。我希望这张图片可以在我的登录页面上方看到,而不必更改格式。 我使用的图像在这里找到:https://tribkiah.files.wordpress.com/2017/08/redcross2.jpg?quality=85&strip=all&w=770 –

+0

如何把图片放在'GridLayout'上面, ? – kalabalik

+0

使用你的图片,我明白你的意思...... – kalabalik