【发布时间】:2018-08-16 05:35:59
【问题描述】:
【问题讨论】:
【问题讨论】:
EditText 被父视图和其他ImageViews 包裹起来。在 whatsapp 示例中,有一个 Imogi ImageView、An EditText、An Attach ImageView 和 a camera ImageView 在LinearLayout 内。并且父 LinearLayout 具有圆角背景。
我总是想节省时间。这是一个 whatsapp 克隆,你可以拉它并使用它的视图。
https://github.com/Shahar2k5/whatsappClone
这家伙在这个图书馆做得很好。
【讨论】:
在 EditText 中使用drawableRight 属性
<EditText
android:id="@+id/account_et"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:drawableRight="@drawable/icon_backall" //your drawable which you want to use
android:ems="10"
android:hint="@string/str_md_email"
android:padding="10dp" >
</EditText>
【讨论】:
你必须像下图一样管理:
以上UI设计代码如下:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="@dimen/_10sdp"
android:background="@drawable/stockbg"
android:orientation="horizontal">
<EditText
android:id="@+id/edt_sendMeassage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/_10sdp"
android:layout_marginRight="@dimen/_10sdp"
android:layout_weight="1"
android:maxLines="4"
android:backgroundTint="@android:color/transparent"
android:paddingLeft="@dimen/_10sdp"
android:paddingRight="@dimen/_10sdp"
android:textSize="@dimen/normal_input_text_size" />
<LinearLayout
android:id="@+id/ll_send"
android:layout_weight="6"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="@dimen/_40sdp"
android:layout_height="@dimen/_20sdp"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:src="@drawable/ic_next_arrow"
android:tint="@color/color_gray" />
</LinearLayout>
</LinearLayout>
【讨论】:
我想将附件图标放入 EditText,例如它是如何制作成 WhatsApp 的。
如果你想在EditText中添加图标,你可以使用
android:drawableStart=""
android:drawableEnd=""
android:drawableTop=""
android:drawableLeft=""
android:drawableRight=""
它是如何被制作成 WhatsApp 的。我该怎么做?
那不是自定义Edittext
您需要将ImageView 和EditText 包装在ViewGroup 中,例如LinearLayout 或RelativeLayout
示例代码
<LinearLayout
android:id="@+id/relativeLayout"
android:layout_width="match_parent"
android:padding="10dp"
android:background="@drawable/test"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_menu_camera" />
<EditText
android:layout_width="0dp"
android:background="@android:color/transparent"
android:layout_weight="1"
android:layout_height="wrap_content" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:src="@drawable/ic_menu_camera" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:src="@drawable/ic_menu_camera" />
</LinearLayout>
android:background="@drawable/test"
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="2dp"
android:color="@color/colorPrimary" />
<corners android:radius="25dp" />
</shape>
输出
【讨论】:
您需要在布局中放置edittext和附加图标(根据您的需要)并将圆角背景设置为父布局
喜欢这个
<RelativeLayout
android:id="@+id/sendLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/roundedbg"
android:orientation="horizontal">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/attachFile"
android:background="@null"
android:padding="@dimen/five_dp" />
<ImageView
android:id="@+id/attachFile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"
/>
</RelativeLayout>
roundedbg.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF"/>
<stroke android:width="3dp" android:color="#B1BCBE" />
<corners android:radius="10dp"/>
<padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" />
</shape>
【讨论】:
最好在下面的相对布局中使用 wrap edittext 和 imageview
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp">
<EditText
android:id="@+id/etPassword"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/custom_edittext"
android:hint="Password"
android:minLines="10"
app:passwordToggleEnabled="true"
android:singleLine="true"
android:inputType="textPassword"
android:textSize="14sp"
android:paddingLeft="20dp"
android:layout_weight="1"
android:paddingRight="20dp"
tools:ignore="MissingPrefix" />
<ImageView
android:id="@+id/ivPasswordToggle"
android:layout_width="24dp"
android:elevation="10dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:layout_height="24dp"
android:background="@drawable/ic_remove_red_eye_black_24dp"/>
</RelativeLayout>
输出:
在java代码中使用点击imageview
【讨论】: