android background设置颜色后就成textview了

来源:互联网 发布:新丰县网络问政 编辑:程序博客网 时间:2024/04/27 14:27

 用到Button,谁都会想到网页那里面各式各样的Button,那么你是否也想设计出那种效果呢?呵呵,答案是肯定的,android很强大。但是,今天刚迈出第一步就发现了一个头疼的问题。什么事都是从简到繁再到简的,就像Button的设计也一样。想设计出很多不同的很拉风的Button肯定第一步就是给Button设置背景,我也是这么做的,可是设置背景为颜色后Button变成了Textview一样,并且高度跟文字一样,这肯定不是我想要的结果啦,然后百度得到了结果:先说再贴链接。android Button 已经默认了有个实现,内部是通过State List(想知道,看官方文档,悄悄的告诉你们,这个篇章读完就可以设计自己的Button了哦,文档目录为Dev Guid------Drawable Resources)实现的,现在我们用android:drawable="@color/red"  把原来的样式给覆盖了,所以就出现了这种悲剧。解决方案:1.自己定义一个xml类型drawable资源,eg:

res/values/colors.xml----------------------------------

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="red">#ff0000</color>
   <color name="green">#00ff00</color>
   <color name="blue">#0000ff</color>
</resources>

res/drawable/button.xml ----------------------------  ①

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@color/blue" /> <!-- pressed -->
    <item android:state_focused="true"
          android:drawable="@color/red" /> <!-- focused -->
    <item android:drawable="@color/green" /> <!-- default -->
</selector>

使用

<Button
     android:id="@+id/show"
     android:layout_width="fill_parent"
       android:layout_height="40dip"
       android:text="show"
      android:background="@drawable/button"
    />

然后设定Button的height,就可以有自己的显示样式了。

第二种解决方案是把①处的drawable改成图片,那样也能有固定的高度了。

说了这些,应给大家一个参考了:http://blog.csdn.net/zhanghw0917/article/details/5630538

做完上述操作,你就觉得满足了吗?这不应当是我们的终点,而是起点。

现在,就可以实现一些复杂的Button了,不多讲,我也是看的,就贴链接了:

http://blog.csdn.net/xjanker2/article/details/6222690