为具有可绘制形状的 EditText 视图设置样式,使其看起来类似于 Android < 3.0 的新全息主题

Posted

技术标签:

【中文标题】为具有可绘制形状的 EditText 视图设置样式,使其看起来类似于 Android < 3.0 的新全息主题【英文标题】:Styling EditText view with shape drawable to look similar to new holographic theme for Android < 3.0 【发布时间】:2012-01-02 23:00:46 【问题描述】:

我想创建一个 shape drawable 来模拟旧 android 版本上的新全息主题 (Android >=3.0)。

在底部画一条线很容易

  <?xml version="1.0" encoding="utf-8"?>
  <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
      <item>
          <shape >
              <solid android:color="@color/border" />
          </shape>
      </item>

      <!-- main color -->
      <item android:bottom="1.5dp">
          <shape >
              <solid android:color="@color/background" />
          </shape>
      </item>
  </layer-list>

但是如何像在holo主题987654322@中那样左右绘制刻度线

【问题讨论】:

你实现了你想要做的事情吗? 是的。这已经足够了。如下所述,解决方案缺少所选字段的发光效果。 【参考方案1】:

这是一个小技巧,但除非你找到更好的东西,否则这种方式应该是可能的。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
  <item>
      <shape >
          <solid android:color="@color/border" />
      </shape>
  </item>

  <!-- main color -->
  <item android:bottom="1.5dp"
      android:left="1.5dp"
      android:right="1.5dp">
      <shape >
          <solid android:color="@color/background" />
      </shape>
  </item>

  <!-- draw another block to cut-off the left and right bars -->
  <item android:bottom="15.0dp">
      <shape >
          <solid android:color="@color/background" />
      </shape>
  </item>
</layer-list>

【讨论】:

按预期工作!我想为选定的状态创建一个发光并不是那么容易...... 一种完全不同的方法(不使用 shape-drawables),是使用 .9.png(或九个补丁图像)......有了这些,它也应该相当容易,但我不不知道你坚持使用 shape-drawables 的原因。 developer.android.com/guide/developing/tools/draw9patch.html Shape drawables 与分辨率无关。使用九个补丁时,我需要管理一堆资产。如果这不是问题,九个补丁也是一个很好的解决方案。 我正在尝试这样做,但试图让最后 2 个 android:colors(你有“背景”)在我当前的背景之上是透明的,而不必指定“@color/background” ”。我怎样才能做到这一点?我试过@android:color/transparent,但它只是让整个EditText看起来像一个白框(我用#FFFFFF代替你的“@color/border”)。【参考方案2】:

我发现这个网站将为您选择的任何颜色的小部件创建以 Holo 为主题的可绘制对象:http://android-holo-colors.com/。它会为您生成 9 个补丁,您只需将它们粘贴到您的应用中即可。

【讨论】:

但是,感谢您的链接!很高兴快速获得一些可绘制对象并开始编码

以上是关于为具有可绘制形状的 EditText 视图设置样式,使其看起来类似于 Android < 3.0 的新全息主题的主要内容,如果未能解决你的问题,请参考以下文章

Android - 可绘制形状样式中的多种颜色和大小

如何在具有可绘制背景的搜索视图上删除下划线

形状可绘制尺寸不起作用

具有渐变的可绘制视图背景在预览中正确显示但在模拟器中不正确

具有图层列表背景可绘制的自定义视图呈现黑屏

EditText 中可点击的复合可绘制对象,点击时会弹出一个视图