`
womendu
  • 浏览: 1513545 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android自定义Button按钮显示样式

 
阅读更多
关于listview和button都要改变android原来控件的背景,在网上查找了一些资料不是很全,所以现在总结一下android的selector的用法。

首先android的selector是在drawable/xxx.xml中配置的。

先看一下listview中的状态:

把下面的XML文件保存成你自己命名的.xml文件(比如list_item_bg.xml),在系统使用时根据ListView中的列表项的状态来使用相应的背景图片。

drawable/list_item_bg.xml

<?xml version="1.0" encoding="utf-8" ?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<!-- 默认时的背景图片-->

<item android:drawable="@drawable/pic1" />

<!-- 没有焦点时的背景图片-->

<item android:state_window_focused="false" android:drawable="@drawable/pic1" />

<!-- 非触摸模式下获得焦点并单击时的背景图片-->

<item android:state_focused="true" android:state_pressed="true"

android:drawable="@drawable/pic2" />

<!-- 触摸模式下单击时的背景图片-->

<item android:state_focused="false" android:state_pressed="true"

android:drawable="@drawable/pic3" />

<!--选中时的图片背景-->

<item android:state_selected="true" android:drawable="@drawable/pic4" />

<!--获得焦点时的图片背景-->

<item android:state_focused="true" android:drawable="@drawable/pic5" />

</selector>

  使用些xml文件:第一种是在listview中配置android:listSelector="@drawable/list_item_bg"

或者在listview的item中添加属性android:background=“@drawable/list_item_bg"即可实现,或者在java代码中使用:Drawable drawable = getResources().getDrawable(R.drawable.list_item_bg);

ListView.setSelector(drawable);同样的效果。

但是这样会出现列表有时候为黑的情况,需要加上:android:cacheColorHint="@android:color/transparent"

使其透明。

其次再来看看Button的一些背景效果:

android:state_selected是选中

android:state_focused是获得焦点

android:state_pressed是点击

android:state_enabled是设置是否响应事件,指所有事件

根据这些状态同样可以设置button的selector效果。也可以设置selector改变button中的文字状态。

以下就是配置button中的文字效果:

drawable/button_font.xml

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_selected="true" android:color="#FFF" />

<item android:state_focused="true" android:color="#FFF" />

<item android:state_pressed="true" android:color="#FFF" />

<item android:color="#000" />

</selector>

Button还可以实现更复杂的效果,例如渐变啊等等。

drawable/button_color.xml

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true">

<!-- 定义当button 处于pressed 状态时的形态。-->

<shape>

<gradient android:startColor="#8600ff" />

<stroke android:width="2dp" android:color="#000000" />

<corners android:radius="5dp" />

<padding android:left="10dp" android:top="10dp"

android:bottom="10dp" android:right="10dp" />

</shape>

</item>

<item android:state_focused="true">

<!-- 定义当button获得focus时的形态-->

<shape>

<gradient android:startColor="#eac100" />

<stroke android:width="2dp" android:color="#333333" color="#ffffff" />

<corners android:radius="8dp" />

<padding android:left="10dp" android:top="10dp"

android:bottom="10dp" android:right="10dp" />

</shape>

</item>

</selector>

  最后,需要在包含button的xml文件里添加两项。假如是main.xml 文件,我们需要在<Button />里加两项。

android:focusable="true"

android:backgroud="@drawable/button_color"

这样当你使用Button的时候就可以甩掉系统自带的那黄颜色的背景了,实现个性化的背景,配合应用的整体布局非常之有用啊

分享到:
评论

相关推荐

    Android 自定义Button按钮显示样式(正常、按下、获取焦点)

    本文将深入探讨如何自定义一个Button,使其在不同状态(正常、按下、获取焦点)下呈现出不同的显示样式。我们将通过创建一个自定义的Button类,利用XML属性和Java代码来实现这一功能。 首先,我们需要创建一个新的...

    android 自定义单选按钮radioButton

    在Android开发中,单选按钮(RadioButton)是用户界面中常用的一种组件,它通常用于提供一组互斥的选择项,用户只能选择其中的一项。本教程将深入探讨如何在Android中自定义RadioButton,使其满足特定的设计需求。 ...

    android studio 自定义button 以及基础动画

    android studio 自定义button边框,角度,渐变颜色按下时改变样式, 以及基础动画,为image view添加旋转,下移,渐变等样式,使用timer handler button进行控制。

    android 自定义各种风格button

    然而,系统默认的Button样式可能无法满足所有设计需求,因此,开发者常常需要自定义Button的各种风格,包括颜色、形状、边框、文字样式等。本文将深入探讨如何在Android中自定义各种风格的Button。 首先,我们可以...

    【Android】自定义Button效果

    总的来说,自定义Button效果涵盖了Android UI设计的多个方面,包括样式、Drawable、自定义View、动画、属性、触摸反馈等。通过熟练掌握这些技术,开发者能够创造出极具吸引力且用户体验优秀的Android应用。

    android自定义按钮控件样式

    6. **库和工具**:Android社区提供了许多开源库,如`ShapedButton`或`MaterialButton`,它们可以帮助开发者轻松实现自定义按钮样式,同时提供了更多高级特性,如动画效果。 在提供的压缩包文件`AndroidDemoCNG`中,...

    自定义Button控件,继承Button控件App源码

    在自定义Button时,可能要添加的新特性包括但不限于:改变按钮的背景、文字颜色、边框、阴影、点击效果、字体样式等。这通常通过重写`onDraw()`方法或者使用自定义属性(attrs.xml)和样式资源来实现。 4. ** ...

    android 万向自定义button,按钮

    本文将深入探讨如何在Android中创建一个万向自定义Button,即一个可以展示无极量的按钮。这个自定义Button适用于那些需要显示动态数值或进度的场景,比如游戏中的积分显示或者进度条。 首先,我们从创建一个新的...

    安卓 android 自定义 switch button,滑动开关

    本篇将深入探讨如何在Android中自定义`Switch Button`,打造既漂亮又美观的滑动开关。 首先,自定义`Switch Button`涉及的主要方面包括布局设计和动画效果。布局设计通常通过XML实现,可以调整开关的背景、文字颜色...

    android 自定义RadioButton的样式

    3. **调整RadioButton的按钮样式**:可以进一步通过`android:button`属性来自定义按钮的显示效果。 #### 创建Drawable资源文件 创建Drawable资源文件通常是通过XML文件来实现的,这些文件一般位于项目的`res/...

    Android自定义按钮实现长按功能

    在Android开发中,自定义控件是提升...这种方法允许我们在不改变原有按钮样式的情况下,轻松添加长按行为,为用户提供更多的交互可能性。同时,自定义按钮类也可以根据需求扩展其他功能,比如动画效果、触摸反馈等。

    android 自定义图片按钮 很实用

    本教程将深入探讨如何在Android中创建一个自定义的图片按钮,它不仅美观,而且功能实用。 首先,我们要明白图片按钮(ImageButton)是Android系统提供的一种基本控件,它允许我们通过设置图像来显示按钮。然而,...

    自定义button样式,圆角按钮

    本文将深入探讨如何自定义Button样式,特别是创建具有圆角效果的按钮,即“圆角按钮”。我们将从以下几个方面进行详细讲解: 1. **XML布局中的基本设置** 在Android布局文件中,我们通常使用`&lt;Button&gt;`标签来创建...

    android 自定义带删除按钮的EditText

    你可以根据需要自定义删除按钮的样式和位置,以及添加更多的交互逻辑,如动画效果。 最后,为了在布局文件中使用这个自定义的EditText,只需像使用普通EditText一样引用它,并在XML中指定对应的类名: ```xml ...

    android使用了自定义button自定义tabHost切换页面Demo

    首先,我们来看看“自定义button”。在Android原生的Button组件基础上进行自定义,主要是为了满足设计需求或者实现特殊功能。自定义按钮通常涉及以下几个方面: 1. **样式定制**:通过设置背景资源、文字颜色、文字...

    自定义Button控件显示

    本篇将详细介绍如何自定义Button的显示样式,包括底图、颜色、图片等方面。 首先,自定义Button的基础在于创建一个继承自Android系统的Button类的新类。在Java代码中,我们可以这样实现: ```java public class ...

    Android-DownLoadProgressButton下载显示进度按钮控件

    学习和使用`DownLoadProgressButton`控件,开发者可以深入了解Android自定义视图的原理,以及如何处理与后台任务的交互。这对于提升应用的用户体验和视觉效果非常有帮助。同时,对于想要深入Android UI开发的程序员...

    android 自定义右上角关闭按钮X的dialog

    在Android开发中,自定义对话框(Dialog)是一种常见的需求,它可以提供更加个性化的用户体验。本文将详细讲解如何实现一个自定义的右上角带有“X”文字按钮的Dialog,这个按钮可以用来关闭Dialog。 首先,我们需要...

    android自定义数字键盘

    以上就是实现一个简单的Android自定义数字键盘的基本步骤。这个键盘可以根据实际需求进行扩展,例如添加更多特殊功能按钮,如加减乘除符号,或者增加对多行文本的支持。同时,也可以考虑优化键盘的视觉样式,使其与...

Global site tag (gtag.js) - Google Analytics