关于在自定义View中添加Button按钮以及实现点击事件
来源:互联网 发布:mac dance with me唇釉 编辑:程序博客网 时间:2024/06/05 04:01
环境:项目中一个自定义View需要添加一个Button并实现点击事件。
主要问题:可以添加Button控件但是目前能力有限无法实现OnClick监听
目前解决办法:
1、在dispatchDraw中绘制一个Button按钮(填充绘制矩形),在同样的区域绘制一个TextView并初始化,添加按钮文字。
private void initmArea() { ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); mTouchArea = new TextView(getContext()); ...... mTouchArea.setText("要输入的文本"); addView(mTouchArea); }
2、在onTouchEvent的ACTION_DOWN中添加判断:如果手指点击区域在绘制区域内,标志位(boolean)mTouch = true;
public boolean inArea(MotionEvent event, TextView mTouchArea) { Rect rect = new Rect(); int[] location = new int[2]; mTouchArea.getLocationOnScreen(location); rect.left = location[0]; rect.top = location[1]; rect.right = mTouchArea.getWidth() + location[0]; rect.bottom = mTouchArea.getHeight() + location[1]; if (rect.contains((int) event.getRawX(), (int) event.getRawY())) { return true; }else { return false; } }
case MotionEvent.ACTION_DOWN: ...... // 判断触摸点是否在TextView中 if (inArea(event, mTouchArea)){ mTouch = true; } ...... break;case MotionEvent.ACTION_UP: ...... mTouch = false; break;
3、在dispatchDraw/onDraw中实现响应事件
@Override protected void dispatchDraw(Canvas canvas) { ...... if (mTouch) { ...... } ...... super.dispatchDraw(canvas); }
以上,完成,仅做记录。
阅读全文
0 0
- 关于在自定义View中添加Button按钮以及实现点击事件
- 自定义View添加点击事件
- 自定义cell创建 button, 在控制器实现点击事件
- jquery实现button按钮的点击事件
- Unity3D中Button的按钮点击事件
- AlertDialog中使用自定义View,view中的Button如何设置点击事件监听
- 关于自定义adapter中添加按钮,listview不能点击
- Android自定义View与添加点击事件
- 自定义的view中控件的点击事件实现
- 关于在fragment中监听按钮的点击事件
- AlertDialog中使用自定义View,其中的Button如何设置点击事件监听
- Android中在fragment中实现点击按钮事件
- 自定义view系列(3)--给自定义View添加点击事件
- view上添加点手势 button无法响应点击事件
- view上添加点手势 button无法响应点击事件
- view上添加点手势 button无法响应点击事件
- 封装顶部选择按钮(用block实现在当前控制器下面添加button点击方法)
- iOS中关于button点击事件和view渲染的处理顺序
- 关于前端命名规范的一些心得
- jvm-运行时内存结构
- 冒泡排序,选择排序,二分查找小结
- MOS管作用
- JavaScript 霸榜!TensorFlow火热!GitHub 2017 年度报告,你擅长的技术快被淘汰了!
- 关于在自定义View中添加Button按钮以及实现点击事件
- 2017-10-31
- Qt全局坐标和相对坐标
- web颜色
- 砥砺奋进!GitChat 发布 1.9 版本更新公告
- 【区块链创业】【React】【想入行 AI】【程序员升值】| Chat · 预告
- 连公式都没看懂?!学渣谨碰这个「神经网络」
- 技术学到多厉害,才能顺利进入BAT?
- 这 26个中国式创新,征服了全世界