2

我正在为我学校的作业做聊天申请。

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

Chrome 的编辑文本

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

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

谢谢

4

3 回答 3

3

在此处输入图像描述你可以通过透明的edittext背景来实现这一点。

所以把你的图像放在布局的背景中,并在其中放置一个edittext。并使edittext透明化..

或试试这个

<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..

于 2012-11-01T12:29:24.713 回答
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>
于 2012-11-01T12:37:46.680 回答
2

SDK 本身没有任何东西可以使它看起来像那样。(也许如果您将使用限制为仅某个版本的操作系统,那么您可以使用该版本的默认样式,但这并不是一个真正可行的解决方案)

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

<EditText android:id="@+id/et_whatever"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    background="@drawable/YOUR_FILE_NAME" />
于 2012-11-01T12:41:41.640 回答