请参阅下面的样本:如何创建包含两个图像的文本编辑器?
我想造成这种编辑文本控件的两个拖拉的对象。一张图像位于左侧,显示一个搜索图标。另一张图片位于右侧,并与搜索图标和搜索文本排列在一起。搜索文本编辑器位于两个图像之间。
我该如何去创建一个像上图中的编辑文本?
请参阅下面的样本:如何创建包含两个图像的文本编辑器?
我想造成这种编辑文本控件的两个拖拉的对象。一张图像位于左侧,显示一个搜索图标。另一张图片位于右侧,并与搜索图标和搜索文本排列在一起。搜索文本编辑器位于两个图像之间。
我该如何去创建一个像上图中的编辑文本?
我可能会创建扩展LinearLayout
自定义视图。并使用这种布局。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView/> <!-- For search icon -->
<EditText/> <!-- with custom background which has alpha 0 -->
<View/> <!-- for the divider -->
<ImageView/> <!-- for heart icon -->
</LinearLayout>
我的自定义类
public class CustomEditText extends LinearLayout {
private EditText editText;
// Other views if necessary
public CustomEditText(Context context) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.custom_layout,
this, true);
editText = (EditText)findViewById(R.id.my_edittext_id);
}
public String getText() {
return editText.getText().toString();
}
}
您可以通过添加TextWatcher
和听众更具互动性。
你不需要任何特别的东西。只需使用一个容器三个对象:
容器装有:
你可能不得不玩弄对象来让它们排列正确,但这将是最简单的方法。
我看到还有一个| (看管)字符/图像在文本框和心脏之间。这可能是第四个对象或心脏图像的一部分。随你便。顺便说一句,如果你环顾四周,你会发现有心脏和“搜索”图标字符的字体,所以你根本不必管理图像。如果您使用字体,您只需拥有一个带有两个或三个标签和一个文本编辑框的容器。
+1为您的快速回复。我是一名初学者。我不太了解这个概念。所以我尝试使用Froyo答案并获得输出。 – RameshJaga
Rameshababu,我承认我的答案是非常高的水平,因为有很多不同的方法来实现你正在寻找的设计。但是,是的,我同意@ Froyo的答案具体而且很好。我也投了票。 –
可以使用android:drawableLeft
和android:drawableRight
如果管和心脏是唯一一个可绘制
<EditText
android:id="@+id/buttonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/search"
android:drawableRight="@drawable/heart"
android:drawablePadding="5dip"
android:gravity="center" />
这会为我节省很多时间。我需要更多地了解这些复杂的细节。 – Froyo
感谢兄弟。我尝试这种方式,并根据我的要求得到了输出。 – RameshJaga