`
ithinkfeed
  • 浏览: 93349 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android自定义button的实现,未选中,按下,选中效果

阅读更多

package com.test.TestButton;

import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.StateListDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class TestButton extends Activity {
   @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Integer[] mButtonState = { R.drawable.defaultbutton,
                R.drawable.focusedpressed, R.drawable.pressed };
        Button mButton = (Button) findViewById(R.id.button);
        MyButton myButton = new MyButton(this);
        mButton.setBackgroundDrawable(myButton.setbg(mButtonState));
    }

    class MyButton extends View {

        public MyButton(Context context) {
            super(context);
        }
        //以下这个方法也可以把你的图片数组传过来,以StateListDrawable来设置图片状态,来表现button的各中状态。未选 	中,按下,选中效果。
        public StateListDrawable setbg(Integer[] mImageIds) {
            StateListDrawable bg = new StateListDrawable();
            Drawable normal = this.getResources().getDrawable(mImageIds[0]);
            Drawable selected = this.getResources().getDrawable(mImageIds[1]);
            Drawable pressed = this.getResources().getDrawable(mImageIds[2]);
            bg.addState(View.PRESSED_ENABLED_STATE_SET, pressed);
            bg.addState(View.ENABLED_FOCUSED_STATE_SET, selected);
            bg.addState(View.ENABLED_STATE_SET, normal);
            bg.addState(View.FOCUSED_STATE_SET, selected);
            bg.addState(View.EMPTY_STATE_SET, normal);
            return bg;
        }
    }
}
 

分享到:
评论

相关推荐

    android 自定义单选按钮radioButton

    通过在`res/drawable`目录下创建XML文件(如custom_button.xml),可以定义RadioButton的选中和未选中状态: ```xml <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state...

    expandablelistview自定义实现单选效果

    这样,当用户点击一个标题时,RadioButton会呈现选中状态,而其他标题则会被取消选中,从而实现类似RadioButton的单选效果。 总的来说,通过自定义ExpandableListAdapter并在`getGroupView`方法中处理RadioButton的...

    Android:自定义View实现随滑动由箭头变对勾的指示按钮

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据...这个“MagicButton”不仅展示了自定义View的基本原理,还涉及到触摸事件处理、动画效果实现等多个知识点,是Android开发中非常实用的一个实践案例。

    android 自定义RadioButton的样式

    ### Android自定义RadioButton的样式 在Android开发过程中,经常需要对UI进行个性化定制来满足不同应用的需求或提高用户体验。RadioButton是一种常用的控件,用于表示一组互斥的选择项。默认情况下,Android提供的...

    android实现自定义tab页

    在Android应用开发中,创建自定义的Tab页可以极大地提升用户体验和界面的个性化。本教程将深入探讨如何利用RadioButton实现非源生风格的Tab页,而不是依赖于原生的TabHost或ViewPager。以下是对这个主题的详细讲解:...

    自定义CheckBox样式

    --这里是未选中,CheckBox的背景图--> <item android:drawable="@drawable/checkBtn_off" android:state_checked="false" android:state_enabled="true"> 以上三步之后,实现CheckBox的样式自定义

    android自定义按钮控件样式

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

    Android自定义IOS开关

    总之,“Android自定义IOS开关”是一个针对Android UI设计的实践案例,通过自定义组件实现了iOS风格的开关效果,提高了应用的用户体验。对于Android开发者来说,学习这样的自定义控件实现,不仅可以提升界面设计的...

    Android 自定义ToggleButton

    在Android开发中,`ToggleButton`是一个非常实用的控件,它结合了`CheckBox`和`Button`的功能,用户可以通过点击来切换其选中或非选中的状态,通常用于实现开关功能。本文将深入探讨如何在Android中自定义`...

    android自定义开关ToggleButton

    2. **创建背景图**:在`res/drawable`目录下创建一个名为`custom_toggle_button_background.xml`的`selector`文件,定义不同状态下的背景图片,包括正常状态、选中状态、按下状态等。 ```xml <selector xmlns:...

    Android自定义RadioButton及RadioGroup

    本篇文章将深入探讨如何在Android中自定义RadioButton及其所在的RadioGroup,并使用selector来实现动态的选中状态变化。 首先,我们来理解一下什么是selector。Selector是Android中的一个图形状态列表器,它可以...

    Android之自定义ToggleButton使用

    使用`android:checkedButtonBackground`属性可以改变选中时的背景,`android:button`则可以设置未选中时的背景。通常我们还会修改文字颜色,可以通过`android:textColor`来实现。 3. **自定义图标** 如果希望使用...

    android自定义RadioButton

    首先,我们来看标题中的“android自定义RadioButton”。在Android中,自定义RadioButton主要涉及以下几个方面: 1. **绘制自定义背景**:这通常通过创建XML drawable文件来实现。例如,在`button1.9.png`、`button...

    RadioButton实现底部带指示条的Tab选项卡三个和两个tab的都有

    总的来说,"RadioButton实现底部带指示条的Tab选项卡"是一个结合了UI设计和事件处理的Android开发任务,涉及到RadioButton、RadioGroup、自定义样式、布局管理和用户交互等多方面的知识。通过这个项目,开发者不仅...

    Android 自定义可编辑下拉框

    在Android开发中,自定义控件是提升应用用户体验和界面美观度的重要手段。"Android 自定义可编辑下拉框"是一个常见的需求,特别是在创建表单或者需要用户输入并选择特定值时。本教程将深入探讨如何实现这样一个功能...

    android自定义多选对话框

    "android自定义多选对话框"是一个常见的需求,特别是在需要用户从多个选项中进行选择时。在这个主题中,我们将深入探讨如何创建这样一个自定义的多选对话框。 首先,Android的`AlertDialog`类是系统提供的标准...

    自定义android RadioButton样式

    总的来说,自定义Android的RadioButton样式涉及到多个方面,包括创建XML资源文件定义样式,修改布局文件应用样式,以及可能的交互效果实现。理解并掌握这些技巧,可以让你的应用界面更加独特和吸引人。

    android 自定义第三方抽屉组件

    以上是关于“android 自定义第三方抽屉组件”的详细解析,包括了滑动效果的实现、handle按钮的管理、抽屉内容的布局以及组件的可配置性等方面的知识点。希望对你在Android开发中实现自定义抽屉组件有所帮助。

    Android自定义View——实现字母导航栏

    本文将深入探讨如何实现一个功能完备的字母导航栏,这是许多应用中常见的交互元素,尤其在联系人列表或者商店分类等场景下非常实用。字母导航栏通常允许用户通过点击字母快速跳转到对应的姓氏或分类。 首先,我们...

Global site tag (gtag.js) - Google Analytics