Android 如何点击异形按钮
来源:互联网 发布:淘宝网红店铺排名男装 编辑:程序博客网 时间:2024/05/19 07:28
需求如下:
设计一个类似电视遥控器的界面,需要有弧形或其他多边异形按钮
解答:
我们知道在电脑中所有图片全部都是矩形的....可能大家并没有注意到这个问题,据说是因为显示器都是矩形的。
基于这样一个条件,我们就知道想要做出异形图片是不可能的。这样明确了一点:即所有异形图片也都是异形图+透明区构成的。
那如何实现点击异形图才有效果,点击透明区域无效果呢?
我们这样实现:
public static class PassThroughButton extends Button {private Bitmap mBitmap;public PassThroughButton(Context context, AttributeSet attrs) {super(context, attrs);}@Overridepublic boolean onTouchEvent(MotionEvent event) {if (event.getAction() == MotionEvent.ACTION_DOWN) {int color = mBitmap.getPixel((int) event.getX(),(int) event.getY());if (color == 0) {return false;}}return super.onTouchEvent(event);}@Overrideprotected void onSizeChanged(int w, int h, int oldw, int oldh) {if (w == 0 && h == 0 && oldw == 0 && oldh == 0) {super.onSizeChanged(w, h, oldw, oldh);} else {final StateListDrawable bkg = (StateListDrawable) getBackground();mBitmap = Bitmap.createScaledBitmap(((BitmapDrawable) bkg.getCurrent()).getBitmap(),getWidth(), getHeight(), true);}}}
自定义一个Button,重写其onTouch事件,按下的时候获取当前点的像素,如果有值就继续传递事件,如果是透明区域就拦截事件。
你看到的每一种颜色都可以独立的点击,附上源码哦:
http://download.csdn.net/detail/h3c4lenovo/6456139
- Android 如何点击异形按钮
- Android如何扩大按钮点击区域
- android 如何实现点击按钮连接网页
- android 中如何扩大按钮的可点击范围
- android 按钮点击事件
- Android点击按钮打电话
- Android按钮点击事件
- Android按钮点击事件
- Qt异形按钮的创建
- bootstrap如何点击按钮出弹框
- iOS:按钮连续点击 按钮快速点击 如何处理
- android 防止 多次点击 重复点击按钮
- android 点击返回按钮事件
- Android防止按钮连续点击
- android学开发:按钮点击
- android按钮点击时间倒数
- android 解决按钮快速点击
- android 点击事件 按钮事件
- 黑马训练营--注解(二)
- 自己练习做的一些效果图《五》
- 黑马程序员_学习笔记第2天——运算符、语句
- Day Two:了解Perl语言特点
- UML用例图的应用
- Android 如何点击异形按钮
- Java常用类库--定时调度(Timer、TimerTask)
- 在有cPanel功能的美国或香港服务器空间上安装OpenCart教程
- 深入理解typedef和深入理解函数指针
- 我读研的目的就是为了找到一份更好的工作
- ubuntu安装软件中出现依赖性错误无法安装解决办法
- Oracle 11gR2 RAC安装入门培训-视频分享
- VC 注册表操作
- 开始学android