布局中的一半imageview

时间:2017-06-26 10:43:12

标签: android xml android-layout user-interface

 _________________
|      test       |
|      ______     |
|_____|      |____|
      |______|

这就是我想要的......更大的盒子是用drawable制作的,里面有一个edittext。较小的框应该是带有上传图标的图像视图。

如果edittext中没有任何内容,则imageview将为GONE(不可见)

 _________________
|                 |
|_________________|

所以当图标可见时,我需要增加更大的盒子的宽度。更大的盒子也有一个笔划。

到目前为止,我这样做了

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingStart="27dp"
        android:paddingEnd="27dp"
        android:paddingBottom="10dp"
        android:paddingTop="10dp"
        android:alpha=".5"
        android:background="@drawable/commenting_drawable">
        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="say something"
            android:id="@+id/comments_editText"
            android:textColor="@color/white"
            android:textColorHint="@color/white_75"
            android:fontFamily="sans-serif"
            android:textSize="13sp"
            android:textCursorDrawable="@null"
            android:background="@color/transparent"
            android:layout_centerInParent="true"/>
    </RelativeLayout>
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="35dp">
        <ImageView
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/icn_uploadcomment"
            android:src="@drawable/black_circle_25"/>
    </RelativeLayout>
</FrameLayout>

这是我的可绘制的

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid
        android:color="#ff7c00" />
    <stroke
        android:width="1dp"
        android:color="@color/white"/>
    <corners
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp"
        android:bottomLeftRadius="5dp"
        android:bottomRightRadius="5dp"/>
</shape>

所以基本上我想将一半的imagewiew放在更大的盒子里,我希望当图像视图变得可见时,让更大的盒子自行调整。

2 个答案:

答案 0 :(得分:1)

您可以缩小图像相对布局的上边距大小,使其重叠。由于您可能已经有代码来操作布局,因为您使图像视图可见且不可见,更改大框的大小的最简单方法(IMO)将是按如下方式调整填充:

    RelativeLayout layout = (RelativeLayout) findViewById(R.id.biggerBox);
    layout.setPadding(left, top, right, bottom);

left, top, right, bottom将是更改大盒子大小所需的填充。 (您还需要为更大的盒子提供ID。)

答案 1 :(得分:0)

我能够通过为xml中较小的框提供-ve margin来找到上述问题的解决方案

    <EditText
    android:id="@+id/comment_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="@style/text_comment_style"
    android:paddingBottom="32dp" />
    <ImageView
    android:id="@+id/comment_recorder_button"
    android:layout_width="@dimen/progress_comment_recorder_diameter"
    android:layout_height="@dimen/progress_comment_recorder_diameter"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="-20dp"
    android:layout_below="@+id/comment_text"/>