文档详情

android自定义开关控件-SlideSwitch.pdf

发布:2017-09-15约2.07万字共11页下载文档
文本预览下载声明
ssiinnggwwhhaattiiwwaannnnaa的的专专栏栏 关关注注aannddrrooiidd、、hhttmmll55等等移移动动互互联联网网技技术术 [[置置 ]] aannddrrooiidd 自自定定义义开开关关控控件件--SSlliiddeeSSwwiittcchh 分类: android开发 2013-07-05 21:38 6301人阅读 评论 (5) 收藏 举报 SlideSwitch开关控件canvas 11..效效果果 iphone上有开关控件,很漂亮,其实android4.0以后也有switch控件,但是只能用在4.0以后的系统中,这就失去了 其使用价值,而且我觉得它的界面也不是很好看。最近看到了百度魔拍上面的一个控件,觉得很漂亮啊,然后反编 译了下,尽管没有混淆过,但是还是不好读,然后就按照自己的想法写了个,功能和百度魔拍类似。 下面是百度魔拍的效果和SlideSwitch的效果 1 apk下载地址:/~voa/res/HelloJni.apk 22..原原理理 继承自view类,override其onDraw函数,把两个背景图 (一个灰的一个红的)和一个开关图 (圆开关)通过canvas 画出来;同时override其onTouchEvent函数,实现滑动效果;最后开启一个线程做动画,实现缓慢滑动的效果。 33.. 代代码码 //SlideSwitch.java package com.example.hellojni; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.Typeface; import android.util. ttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup.LayoutParams; /** * SlideSwitch 仿iphone滑动开关组件,仿百度魔图滑动开关组件 * 组件分为三种状态:打开、关闭、正在滑动br/ * 使用方法: * preSlideSwitch slideSwitch = new SlideSwitch(this); *slideSwitch.setOnSwitchChangedListener(onSwitchChangedListener); *linearLayout.addView(slideSwitch); /pre 2 注:也可以加载在xml里面使用 * @author scott * */ public class SlideSwitch extends View { public static final String T G = SlideSwitch; public static final int SWITCH_OFF = 0;//关闭状态 public static final int SWITCH_ON = 1;//打开状态 public static final int SWITCH_SCROLING = 2;//滚动状态 //用于显示的文本 private String mOnText = 打开;
显示全部
相似文档