Android 左右滑动控件
Android 左右滑动自定义控件
public class SlideButton extends View {private Bitmap mBackgroundBitmap;private Bitmap mSlideBitmap;private Paint mPaint;private float mStart;private int mDx;public SlideButton(Context context) {super(context);init(context);}public SlideButton(Context context, AttributeSet attrs) {super(context, attrs);init(context);}private void init(Context context) {mBackgroundBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.background);mSlideBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.slide_button);mPaint = new Paint();mPaint.setAntiAlias(true);mDx = 0;}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int widthMode = MeasureSpec.getMode(widthMeasureSpec);int widthSize = MeasureSpec.getSize(widthMeasureSpec);switch (widthMode) {case MeasureSpec.UNSPECIFIED:break;case MeasureSpec.AT_MOST:widthSize = mBackgroundBitmap.getWidth();break;case MeasureSpec.EXACTLY:break;}int heightMode = MeasureSpec.getMode(heightMeasureSpec);int heightSize = MeasureSpec.getSize(heightMeasureSpec);switch (widthMode) {case MeasureSpec.UNSPECIFIED:break;case MeasureSpec.AT_MOST:heightSize = mBackgroundBitmap.getHeight();break;case MeasureSpec.EXACTLY:break;}// 设置当前控件测量的尺寸setMeasureDimension(widthSize, heightSize);}@Overrideprotected void onDraw(Canvas canvas) {canvas.drawBitmap(mBackgroundBitmap, 0, 0, mPaint);if (mDx < 0) {mDx = 0;}if (mDx > getMeasuredWidth() - mSlideBitmap.getWidth()) {mDx = getMeasuredWidth() - mSlideBitmap.getWidth();}canvas.drawBitmap(mSlideBitmap, mDx, 0, mPaint);}@Overridepublic boolean onTouchEvent(MotionEvent event) {int action = event.getAction();switch (action) {case MotionEvent.ACTION_DOWN:mStart = event.getX();break;case MotionEvent.ACTION_MOVE:float endX = event.getX();mDx = (int) (endX - mStartX);break;case MotionEvent.ACTION_UP:int backgroundCenterPosition = getMeasuredWidth() / 2;int slideCenterPosition = mDx + mSlideButton.getWidth() / 2;if (slideCenterPosition < backgroundCenterPosition) {mDx = 0;} else {mDx = getMeasuredWidth() - mSlideButton.getWidth();}break;}invalidate();return true;}
}
Android 左右滑动控件相关推荐
- Android双向滑动控件
Android双向滑动控件 kaxi4it 关注 一 效果图 二 使用方法 由于新版jcenter强制添加组织还要收费貌似,所以改用jitpack了 最新版本号 在你root的gradle中添加引用 ...
- Android无限滑动控件实现
无限滑动控件 无限滑动控件的预期效果是添加有限个View实现无限滑动的效果. 我的实现是通过重写dispatchDraw,对canvas画布进行偏移达到无限滑动的效果. 效果如图: github地址: ...
- Android左右滑动控件实现开关的切换效果
/** * 开关控件,通过左右滑动控件实现开关的切换效果 <br> * 使用时需要设置开关状态监听{@link OnSwitchStateChangeListener} <br& ...
- android横向滑动控件,Android学习——HorizontalScollview水平滚动控件
HorizatalScollView控件只是支持水平滚动,而且它只能包含一个控件,通常是在标签中定义一个 标签并且在标签中android:orientation属性值设置为horization.然后在 ...
- Android 自动换行添加控件
PS:转载请注明出处,谢谢 最近在项目里面有几个需要根据返回的数据来自动添加控件的地方,在网上找了一些,然后加上自己写的一些,都一起整理完,然后给自己做个备注,啦啦啦啦啦啦~~~~ 先贴一张镇楼效果图 ...
- Android开源中国客户端学习 (自定义View)左右滑动控件ScrollLayout
左右滑动的控件我们使用的也是非常多了,但是基本上都是使用的viewpager 等 android基础的控件,那么我们有么有考虑过查看他的源码进行定制呢?当然,如果你自我感觉非常好的话可以自己定制一个, ...
- android 光晕动画,Android去掉SrollView、GrdiView、RecycleView、ViewPager等可滑动控件滑动到边缘的光晕效果...
下面以RecycleView为例,其他可滑动控件也是一样的 在XML中设置: android:id="@+id/rv_recycle_view" android:layout_wi ...
- android listview 滑动条显示_第七十六回:Android中UI控件之RecyclerView基础
各位看官们,大家好,上一回中咱们说的是Android中UI控件之ListView优化的例子,这一回咱们说的例子是UI控件之RecyclerView.闲话休提,言归正转.让我们一起Talk Androi ...
- Android果冻效果滑动控件
类似于iOS有阻尼效果的滑动控件,一般我们比较亲切地称之为果冻控件 比较常见的地方,如微信里[我]的那个面板模块,即使没有再多的选项,也不会很生硬的不允许用户滑动. 微信是的处理方法是让用户滑动,但最 ...
- android 如何拖动控件的实现
今天,简单讲讲android如何拖动控件. 之前,需要做一个功能,实现控件按照手势进行拖动,拖动到移动位置时可以进行一些操作.当时不知道怎么做,于是在网上查找了资料,终于是解决了这个问题.这里记录一下 ...
最新文章
- Windows server 2008 R2 登录密码恢复
- matlab程序崩溃怎么解决,跪求matlab达人帮我看看程序,我实在是要崩溃了......
- 减少系统资源占用的15个CSS常识
- 阿里云MySQL按流量计费吗_阿里云服务器按使用流量计费带宽峰值1M和100M费用方面有区别吗?...
- 为什么不要使用长事务
- Centos eclipse打开文件自动退出
- Linux学习总结(75)—— Linux history 命令实用技巧
- mysql 统计 1的数量_利用MySQL统计一列中不同值的数量方法示例
- 升级macOS Big Sur 无法开机/死机怎么办?
- 教你win7关闭开机动画,大幅度加快开机时间
- java7 3dm下载_3DM游戏运行库合集安装包v2.8
- vue导出Excel组件
- 微信公纵平台基本配置php_微信公众平台开发之配置与请求_PHP
- 国庆促销海报模板素材
- openfire4.2.1 + smack4.2.2即时通信工具开发(android端登录、发送消息、接收消息)
- 腾讯笔试经验-不是大牛-勿看
- ThingsBoard 仪表板状态
- matlab根号下是多项式,多项式求根
- CorelDRAW x4提示非法软件产品被禁用解决方法教程
- 怎样用计算机命令修复软件,WINDOWS系统损坏无需重装,利用命令一键轻松修复...