关于在自定义View中添加Button按钮以及实现点击事件
2017-11-01 08:46
1011 查看
环境:项目中一个自定义View需要添加一个Button并实现点击事件。
主要问题:可以添加Button控件但是目前能力有限无法实现OnClick监听
目前解决办法:
1、在dispatchDraw中绘制一个Button按钮(填充绘制矩形),在同样的区域绘制一个TextView并初始化,添加按钮文字。
2、在onTouchEvent的ACTION_DOWN中添加判断:如果手指点击区域在绘制区域内,标志位(boolean)mTouch = true;
3、在dispatchDraw/onDraw中实现响应事件
以上,完成,仅做记录。
主要问题:可以添加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); }
以上,完成,仅做记录。
相关文章推荐
- Android使用RecyclerView实现自定义列表、点击事件以及下拉刷新
- IOS 中关于自定义Cell 上的按钮 开关等点击事件的实现方法(代理)
- 关于recyclerview的横向布局的宽度以及item的点击事件的添加
- 关于在tableview的footerView上添加button的点击不响应事件
- Android实现RecyclerView自定义列表、点击事件以及下拉刷新
- Android实现RecyclerView自定义列表、点击事件以及下拉刷新
- CocosCreator项目学习系列<二>关于Button(添加事件)输入控制交互条件的触发_实现虚拟按钮控制_JavaScript
- 利用RecycleView实现类似ListView的Item点击,长按等操作事件以及点击后每一项在添加一个列表
- iOS 为自定义tableView添加button点击事件后获取其序号
- 【Android】ViewPager实现图片左右滑动播放及添加点击事件
- view上添加点手势 button无法响应点击事件
- UIImageView上添加Button不能响应点击事件
- iOS 自定义UITableViewCell上添加UIButton按钮如何确定点击了哪一行,代码块实现
- textview添加selector实现button的点击效果
- IOS自定义View使用block实现点击事件
- iOS 在tableView上添加button导致按钮没有点击效果和不能滑动的问题
- 关于相同页面用一个页面实现,点击datalist中Button按钮出现“回发或回调参数无效......”
- 自定义按钮并添加点击事件&自定义图片并添加点击事件
- AlertDialog中使用自定义View,view中的Button如何设置点击事件监听
- c# 给button添加不规则的图片以及用pictureBox替代button响应点击事件