为具有可绘制形状的 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 的新全息主题的主要内容,如果未能解决你的问题,请参考以下文章