2015-04-12 74 views
-2

请参阅下面的样本:如何创建包含两个图像的文本编辑器?

Mock-up of control to create

我想造成这种编辑文本控件的两个拖拉的对象。一张图像位于左侧,显示一个搜索图标。另一张图片位于右侧,并与搜索图标和搜索文本排列在一起。搜索文本编辑器位于两个图像之间。

我该如何去创建一个像上图中的编辑文本?

回答

1

我可能会创建扩展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和听众更具互动性。

+0

感谢兄弟。我尝试这种方式,并根据我的要求得到了输出。 – RameshJaga

2

你不需要任何特别的东西。只需使用一个容器三个对象:

  • 容器装有:

    • 搜索图标图像/链接
    • 文本框
    • (?也许在内衬管道字符或图像)
    • 心图标/链接

你可能不得不玩弄对象来让它们排列正确,但这将是最简单的方法。

我看到还有一个| (看管)字符/图像在文本框和心脏之间。这可能是第四个对象或心脏图像的一部分。随你便。顺便说一句,如果你环顾四周,你会发现有心脏和“搜索”图标字符的字体,所以你根本不必管理图像。如果您使用字体,您只需拥有一个带有两个或三个标签和一个文本编辑框的容器。

+0

+1为您的快速回复。我是一名初学者。我不太了解这个概念。所以我尝试使用Froyo答案并获得输出。 – RameshJaga

+1

Rameshababu,我承认我的答案是非常高的水平,因为有很多不同的方法来实现你正在寻找的设计。但是,是的,我同意@ Froyo的答案具体而且很好。我也投了票。 –

2

可以使用android:drawableLeftandroid: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" /> 
+0

这会为我节省很多时间。我需要更多地了解这些复杂的细节。 – Froyo

相关问题