Android:使EditText类似于Chrome的网址框

时间:2012-11-01 12:24:25

标签: android textbox android-edittext

我正在为我学校的任务进行聊天申请。

在我看来,Android中的默认EditText看起来不太好。我想让它看起来像Android的Chrome中的URL框:

Chrome's EditText

我见过这种设计用于其他应用程序,例如Catch Notes(看起来很漂亮)。

那么,是否有任何内置选项可以更改EditText,或者我们必须从头开始绘制它?任何人都可以链接?我试过谷歌搜索,但我不知道正确的术语

由于

3 个答案:

答案 0 :(得分:3)

enter image description here您可以通过编辑文本背景透明来实现这一目标。

所以将你的图像放在你的布局背景中并在其中加入一个edittext。并使edittext transpernt ..

或 试试这个

<EditText
        android:id="@+id/tracknumbertxt"
        android:layout_width="fill_parent"
        android:layout_height="30dp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_toLeftOf="@+id/info"
        android:background="@drawable/enter_tracking_no"
        android:ems="10"
        android:hint="Enter Tracking No."
        android:paddingLeft="30dp"
        android:inputType="text"
        android:imeOptions="actionGo"

        android:singleLine="true" >

    </EditText>

这里我已经分配了填充...

因此根据您的设计,您必须设置paddingRight属性而不是paddingLeft ..

答案 1 :(得分:2)

盲目使用以下布局样式.. 您将准备好您的布局。只需更换按钮背景即可完成。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" 
    android:background="@android:color/darker_gray"
    android:padding="5dip"
    android:gravity="center">
    <LinearLayout android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_weight="1"
        android:background="@android:color/white"
        android:gravity="center"
        android:padding="5dip">
        <EditText android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="Type URL"
            android:layout_weight="1"
            android:background="@android:color/transparent"/>
        <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Refresh"/>
    </LinearLayout>
    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="btn1"/>
    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="btn2"/>
</LinearLayout>

答案 2 :(得分:2)

SDK没有任何本机可以使它看起来像这样。 (也许如果你只限制使用某个版本的操作系统,那么你可以使用该版本的默认样式,但实际上并不是一个可行的解决方案)

您需要创建一个图像,以用作EditText的背景,使其看起来如您所愿。文本框和类似内容的最佳选项是使用9-patch image,或创建layer-list XML文件并以此方式描述您的设计。无论哪种方式,该文件将进入项目中的res / drawable文件夹,您可以将其设置为背景,如下所示:

<EditText android:id="@+id/et_whatever"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    background="@drawable/YOUR_FILE_NAME" />