【问题标题】:Set Image on Left side of EditText in Android在 Android 中的 EditText 左侧设置图像
【发布时间】:2012-09-16 03:50:48
【问题描述】:

我有一个联系表单,我想在其中添加一些图标到我的编辑文本中以获得更好的外观。我想创建如下所示的 EditText。

我有如下所示的 EditText。我得到了类似的结果。我希望图像绝对在左侧,就像上图一样。我知道 EditText 内部使用的是九个补丁图像,我认为这就是为什么结果有些不同的原因。有谁知道如何解决这个问题?

<EditText
            android:id="@+id/name"
            android:layout_width="fill_parent"
            android:layout_height="51dip"
            android:hint="@string/name"
            android:inputType="text"
            android:drawableLeft="@drawable/name_icon_edittext" />

【问题讨论】:

  • 您是否尝试过设置 android:paddingLeft 属性。

标签: android drawable android-edittext


【解决方案1】:

不使用android:drawableLeft="@drawable/name_icon_edittext",而是为name_icon 创建单独的ImageView。 这样您就可以更好地控制将其放置在layout

注意:我假设你的 layoutRelativeLayout

【讨论】:

  • 是的,我的布局是相对布局...感谢您的建议,但如果我创建 Imageview 而不是 drawable left,那么它在更多控制方面会有什么用处?你能告诉我它对应用程序有什么好处吗?是和性能有关还是什么
  • 我希望你在几个不同分辨率的屏幕上检查你的布局并验证它,否则如果你需要一些调整,你可以像我上面提到的那样更灵活地设置填充和边距
【解决方案2】:

如果你想在文本和图像之间添加一些空间,那么在 xml 中使用'drawablePadding'属性

android:drawablePadding="10dp"

这里是如何在 xml 文件中使用 edittext 的完整示例

             <EditText
                android:id="@+id/edittext"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:drawableLeft="@drawable/ic_left"
                android:drawablePadding="10dp" />

【讨论】:

    【解决方案3】:

    您可以在 xml 文件中使用android:drawablePadding="10dp" 属性。 无需为图标创建单独的 imagview。

    【讨论】:

    • 我刚刚修复了格式(android:drawable...后面的灰色背景)你的答案没有问题:)
    【解决方案4】:

    有点旧,但可能供将来参考:

    我会自己制作一个 9-patch 图像,具有您想要的外观,保持比例和除图标之外的所有内容,因此您可以使用 EditTextdrawableLeft 属性自己添加它(并重复使用背景)。这样,只有图像的中间部分会被拉伸,而其余部分将保持不变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多