`
dengbaoleng
  • 浏览: 1151426 次
文章分类
社区版块
存档分类
最新评论

Android滑动实现开关

 
阅读更多

首先效果图:


然后是分别建立三个文件,第一个是main.class,第二个是SlipButton.class,第三个是onchangeListener.class

main.class

importAndroid.app.Activity;<wbr><wbr><br> import Android.os.Bundle;<wbr><wbr><br> importAndroid.widget.Toast;<wbr><wbr><br><wbr><wbr><br> public class Main extends Activity implements OnChangedListener{<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr>@Override<wbr><wbr><br><wbr><wbr><wbr> public voidonCreate(Bundle savedInstanceState){<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>super.onCreate(savedInstanceState);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>setContentView(R.layout.main);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>SlipButton myBtn =(SlipButton)findViewById(R.id.slipBtn);//获得指定控件<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>myBtn.SetOnChangedListener(this);//为控件设置监听器<wbr><wbr><wbr><br><wbr><wbr><wbr>}<wbr><wbr><br><wbr><wbr><br><wbr><wbr><wbr>@Override<wbr><wbr><br><wbr><wbr><wbr> public voidOnChanged(boolean CheckState){//当按钮状态被改变时<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>// TODO Auto-generated methodstub<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>if(CheckState)<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>Toast.makeText(this,"打开了..." ,Toast.LENGTH_SHORT).show();<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>else<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>Toast.makeText(this,"关闭了..." ,Toast.LENGTH_SHORT).show();<wbr><wbr><br><wbr><wbr><wbr>}<wbr><wbr><br> }<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

SlipButton.class

importAndroid.content.Context;<wbr><wbr><br> importAndroid.graphics.Bitmap;<wbr><wbr><br> importAndroid.graphics.BitmapFactory;<wbr><wbr><br> importAndroid.graphics.Canvas;<wbr><wbr><br> importAndroid.graphics.Matrix;<wbr><wbr><br> importAndroid.graphics.Paint;<wbr><wbr><br> importAndroid.graphics.Rect;<wbr><wbr><br> importAndroid.util.AttributeSet;<wbr><wbr><br> importAndroid.view.MotionEvent;<wbr><wbr><br> import Android.view.View;<wbr><wbr><br> importAndroid.view.View.OnTouchListener;<wbr><wbr><br><wbr><wbr><br> public class SlipButton extends View implementsOnTouchListener{<wbr><wbr><br><wbr><wbr><br><wbr><wbr><wbr> privateboolean NowChoose =false;//记录当前按钮是否打开,true为打开,flase为关闭<wbr><wbr><wbr><br><wbr><wbr><wbr> privateboolean OnSlip =false;//记录用户是否在滑动的变量<wbr><wbr><wbr><br><wbr><wbr><wbr> privatefloatDownX,NowX;//按下时的x,当前的x,<wbr><wbr><wbr><br><wbr><wbr><wbr> private RectBtn_On,Btn_Off;//打开和关闭状态下,游标的Rect<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr> privateboolean isChgLsnOn =false;<wbr><wbr><br><wbr><wbr><wbr> privateOnChangedListener ChgLsn;<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr> privateBitmapbg_on,bg_off,slip_btn;<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr> publicSlipButton(Context context){<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>super(context);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>// TODO Auto-generated constructorstub<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>init();<wbr><wbr><br><wbr><wbr><wbr>}<wbr><wbr><br><wbr><wbr><br><wbr><wbr><wbr> publicSlipButton(Context context, AttributeSet attrs){<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>super(context, attrs);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>// TODO Auto-generated constructorstub<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>init();<wbr><wbr><br><wbr><wbr><wbr>}<wbr><wbr><br><wbr><wbr><br><wbr><wbr><wbr> private voidinit(){//初始化<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>//载入图片资源<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>bg_on = BitmapFactory.decodeResource(getResources(),R.drawable.slip_bg_on);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>bg_off = BitmapFactory.decodeResource(getResources(),R.drawable.slip_bg_off);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>slip_btn = BitmapFactory.decodeResource(getResources(),R.drawable.slip_btn);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>//获得需要的Rect数据<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>Btn_On = newRect(0,0,slip_btn.getWidth(),slip_btn.getHeight());<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>Btn_Off = new Rect(<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

分享到:
评论

相关推荐

    Android之实现滑动开关组件

    本教程将深入探讨如何在Android应用中实现滑动开关组件,包括基本使用、自定义样式以及事件监听。 首先,Android SDK提供了内置的`SwitchCompat`(对于兼容库)或`Switch`(对于API 14以上)控件,我们可以直接在...

    Android自定义滑动开关

    总之,自定义Android滑动开关是一个涉及UI绘制、触摸事件处理和状态管理的过程。通过这种方式,开发者可以创造出符合项目需求的独特组件,提高应用程序的用户体验。提供的资源链接提供了更详细的实现步骤和演示,...

    android的滑动开关小插件

    本教程将深入讲解如何在Android应用中创建和定制滑动开关,并探讨相关的设计原则和实现细节。 首先,Android的滑动开关组件是基于`SwitchCompat`(在`androidx.appcompat.widget`包中)或原生的`ToggleButton`。`...

    Android可滑动的开关效果

    通过查看和学习这些代码,你可以更深入地理解如何在Android应用中实现滑动开关和动画效果。 总之,创建一个带有滑动和动画效果的Android开关,需要掌握自定义视图、触摸事件处理、动画API以及UI设计技巧。通过不断...

    Android 自定义滑动开关

    首先,滑动开关在Android中通常由Switch或CompoundButton类来实现,但我们为了满足特定需求,需要创建一个自定义的View类。创建一个新的Java类,继承自CompoundButton,因为这个类已经包含了开关的基本行为和回调...

    android 滑动开关按钮

    在Android开发中,滑动开关(Switch)是一种常见的UI组件,它允许用户通过左右滑动来切换开关状态,通常用于开启或关闭某些功能。滑动开关不仅提供了视觉上的交互反馈,还增强了用户体验,因为它允许用户直观地看到...

    通过滑动实现开关

    在编程中,实现滑动开关功能通常涉及到触摸事件处理、图形渲染以及状态管理等多个技术环节。 在iOS和Android系统中,滑动开关通常有各自特定的组件。在iOS中,滑动开关称为UISwitch,而在Android中,我们使用Switch...

    Android仿ios滑动开关以及Material效果的滑动开关

    本文将深入探讨如何在Android中模仿iOS风格的滑动开关以及实现Material Design的滑动开关效果。 **一、iOS风格的滑动开关** iOS的滑动开关,又称UISwitch,在设计上通常具有明确的分隔线和明显的颜色区分,以展示...

    Android自定义控件之实现滑动选择开关代码

    本教程将深入探讨如何实现一个滑动选择开关(Slide Switch)的自定义控件,该控件通常用于开启或关闭某个功能,如开启蓝牙、Wi-Fi等。 首先,我们需要创建一个新的Java类,继承自Android的`View`类或者`...

    Android studio实现滑动开关

    Android Studio 实现滑动开关 Android Studio 是一款功能强大且流行的集成开发环境(IDE),它提供了许多功能来帮助开发者快速构建高质量的 Android 应用程序。在这个资源中,我们将详细介绍如何使用 Android ...

    android 滑动开关

    在Android开发中,滑动开关(Switch)是一种常用的UI组件,它允许用户通过左右滑动来切换开关状态,通常用于二选一的选择场景,如开启/关闭某项功能。滑动开关在Android SDK中被定义为`SwitchCompat`或`Switch`控件...

    Android自定义控件之滑动开关

    本篇文章将深入探讨如何在Android中创建一个自定义的滑动开关控件。 首先,我们需要了解滑动开关的基本构成。滑动开关通常由两部分组成:一个可滑动的轨道(track)和一个滑块(thumb),用户通过拖动滑块在轨道上...

    仿IOS适用Android的滑动开关

    在Android开发中,为了提供与iOS相似的用户体验,开发者经常需要创建自定义控件来实现特定的交互效果,比如仿iOS的滑动开关。本文将深入探讨如何在Android平台上实现这样一个仿iOS风格的滑动开关(Slide Switch)。 ...

    Android滑动开关按钮

    本篇将深入探讨如何在Android应用中实现苹果风格的滑动开关按钮。 首先,Android原生提供了一个名为`SwitchCompat`的组件,它在`androidx.appcompat.widget`包中,适用于兼容多种Android版本。这个组件提供了类似...

    Android中滑动开关的实现

    在Android开发中,为了提供与iOS类似的用户体验,我们经常需要实现滑动开关(Slide Switch)这一控件。滑动开关通常被用作一种二元选择器,用户可以通过左右滑动来切换开关的状态,例如开启或关闭某个功能。下面将...

    android 滑动开关 SlipButton

    在本例中,我们关注的是一个模仿iOS风格的滑动开关实现,它在Android平台上运行良好,并且已经修复了初始状态显示的bug。 滑动开关在Android中通常被实现为Switch或CompoundButton的子类,例如ToggleButton。但是,...

    android 可滑动的开关效果

    本文将深入探讨如何在Android应用中创建一个滑动开关(Slider Switch),并关注其背后的实现原理。 滑动开关通常被称为ToggleSwitch或者SwitchCompat,在Android中,它属于Compound Button的一种,允许用户在两种...

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

    在默认情况下,Android SDK提供了内置的`SwitchCompat`或`Switch`视图,但有时候开发者可能希望创建更加个性化、具有独特设计的滑动开关。本篇将深入探讨如何在Android中自定义`Switch Button`,打造既漂亮又美观的...

    android自定义控件滑动开关源码

    这篇博客文章的配套源码提供了一个自定义滑动开关的实现,让我们深入探讨这个自定义控件的设计和实现。 首先,滑动开关的基本原理是利用Android的View类或者CompoundButton类进行扩展。在这个例子中,开发者可能...

    android 仿ios滑动开关按钮

    通过以上步骤,我们就可以在Android应用中实现一个仿iOS的滑动开关。这个过程涉及到Android图形绘制、触摸事件处理、自定义View以及UI交互等多个方面的知识,对于提升Android开发技能大有裨益。而"滑动开关"这个...

Global site tag (gtag.js) - Google Analytics