event

Andorid开发自定义View(一)

走远了吗. 提交于 2019-12-14 04:52:56
1 View与ViewGroup LinearLayout等布局控件继承ViewGroup,TextView继承View,而ViewGroup也继承自View 2 坐标系 Android系统中有两个坐标系,分别为 View 坐标系和 Activity 坐标系 2.1 Andorid坐标系 android将屏幕左上角的顶点作为Andorid坐标系的原点,原点向右是X轴正方向,原点向下是Y轴正方向。 使用getRawX()和getRawY() 方法获得的是Andorid坐标系的坐标。 2.2 View坐标系 2.1.1 View获取自身的宽高 width=getRight()-getLeft()//该控件最右面的位置距离减去最左面的距离 height=getBottom-getTop()//最下面的控件位置减最上面的距离 系统提供了获取View控件宽和高的方法 int型 private void getHeight() { TextView textView = new TextView(context); textView.getHeight();//获取控件高度 textView.getWidth();//获取控件宽度 } 2.2.2 View自身的坐标 通过以下方法获取View到父控件的距离 int型 textView.getTop();//获取View自身 顶边到其父布局顶边

2017.12.31 JS拖拽本地图片显示

亡梦爱人 提交于 2019-12-13 05:34:03
HTML部分 <div id="img1" class="box1" ondragover="dragOver(event)" ondrop="picture(event)"></div> <div id="img2" class="box2" ondragover="dragOver(event)" ondrop="picture(event)"></div> <div id="img3" class="box3" ondragover="dragOver(event)" ondrop="picture(event)"></div> <div id="img4" class="box4" ondragover="dragOver(event)" ondrop="picture(event)"></div> CSS样式部分 div{width: auto;height: 400px;} .box1{background-color: lightblue} .box2{background-color: lightcoral} .box3{background-color: lightcyan} .box4{background-color: lightgoldenrodyellow} JS部分 function dragStart(e) { e.dataTransfer

后台管理tab栏滑动解决方案

北战南征 提交于 2019-12-12 20:37:35
后台管理系统中比较常见的布局是左边菜单栏,右边tab切换栏,但是一般的tab组件不包含tab页过多的切换问题的,所以需要个性化实现,本文的实现方案是滑动鼠标滚轮绑定tab达到切换的效果,先上一个动态图看下效果 tab滑动栏布局代码如下 <div class="tabmain" id="tabmain"> <div v-for="tab in tabList" v-on:click="changeTab(tab)" :class="tab.id==activeTabID?'tabtitle active':'tabtitle'" :title="tab.label"> <span v-if="tab.label.length<=4">{{tab.label}}</span> <span v-else>{{tab.label.substr(0,4)}}....</span> <span v-on:click="refreshTab(tab)" class="el-icon-refresh-right"></span> <span v-if="tab.candelete" v-on:click="closeTab(tab)" class="el-icon-close"></span> </div> </div> 这里只是循环放置了一排div

js在IE和firefox中的不同

[亡魂溺海] 提交于 2019-12-12 11:38:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.firefox不能对innerText支持。 firefox支持innerHTML但却不支持innerText,它支持textContent来实现innerText,不过默认把多余的空格也保留了。如果不用textContent,如果字符串里面不包含HTML代码也可以用innerHTML代替。 2.禁止选取网页内容: 在IE中一般用js:obj.onselectstart=function(){return false;} 而firefox用CSS:-moz-user-select:none 3.滤镜的支持(例:透明滤镜): IE:filter:alpha(opacity=10); firefox:-moz-opacity:.10; 4.捕获事件: IE:obj.setCapture() 、obj.releaseCapture() Firefox: document.addEventListener("mousemove",mousemovefunction,true); document.removeEventListener("mousemove",mousemovefunction,true); 5.获取鼠标位置: IE:event.clientX、event.clientY firefox

关于FireFox下event is not defined"的问题

一笑奈何 提交于 2019-12-12 11:37:56
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 编写MyShortKey.js过程中遇到一个问题,如下: 函数GetKeyCode2用于获取按键键值,如下: function GetKeyCode2() { var ex = event || window.event; //var keycode = e.which; var keycodes = ex.charCode || ex.keyCode; return keycodes; } 执行函数如下: window.onload = function() { document.onkeyup = function(){ //alert("按键事件执行了!"); //xGetKeyCode(event); document.getElementById("xkeycodesx").innerHTML = "已经载入!" + GetKeyCode2(); //document.getElementById("xkeycodesx").innerHTML = "已经载入!"; }; }; 以上代码在IE、OP、CH、SF等浏览器都正常运行,但在FF下却不运行,使用FF的FireBug插件得知错误信息为“ event is not defined ” 上网查找资料,得知:

java swing 事件响应问题收集

大兔子大兔子 提交于 2019-12-12 04:34:20
在swing的窗口里面,即jframe里面,进行关闭窗口动作,如果事先不在代码中设置好,则默认是把窗口设成 setVisable(false) ,程序还是 依然运行 着,继续占用内存,所以如果不小心,越调试则会发现内存占用率越高,机子越来越卡。 一般的,如果没有特殊要求,只需要这样让该窗口对象调用 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 则当我们关闭窗口时, 程序结束运行 。 但是,如果有特殊要求,如关闭之前要调用一些方法,则可以这样:让该窗口对象调用 addWindowListener(new WindowAdapter()); 方法,并重载方法内容,就像下面的代码那样。 addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { super.windowClosing(e); //加入动作 // } }); how to trigger the windowclosing event manually I need to trigger windoclosing event for JFrame manullay. My purpose is to close a frame by clicking a button

设计模式 --kkb

瘦欲@ 提交于 2019-12-11 15:18:05
设计模式概念 前人总结的代码最佳实践。 设计模式是一套被反复使用、多人知晓的、经过分类的、代码设计经验的总结。 订阅/发布模式(观察者模式) class Event{ constructor(){ this.callbacks = {} } $on(name, fn){ // 监听 // if(!this.callbacks[name]){ // this.callbacks[name] = [] // } // this.callbacks[name].push(fn) // 上述代码的简写 (this.callbacks[name] || (this.callbacks[name]=[])).push(fn) } $emit(name, arg){ const cbs = this.callbacks[name] if(cbs){ cbs.forEach(c=>{ c.call(this, arg) }) } } $off(name){ this.callbacks[name] = null } } let event = new Event() event.$on('event1', arg => { console.log('event1触发', arg) }) event.$on('event1', arg => { console.log('又一个event1触发',

Flume拦截器、监控器

浪尽此生 提交于 2019-12-11 11:37:38
一、拦截器 1、拦截器:拦截器主要作用在source和channel之间,用于给event设置header消息头,如果没有设置拦截器,则event中只有message。 常见的拦截器有: Timestamp Interceptor 时间拦截器:将时间戳插入到header中。 Host Interceptor 主机拦截器:将服务器的ip地址或者主机名插入到header中。 Regex Filtering Interceptor 正则过滤拦截器:过滤掉不需要的日志。 https://blog.csdn.net/jinywum/article/details/82598947 2、自定义拦截器:主要目的就是给日志进行分类,自定义拦截器为每个event设置header,header里标志着日志的类型。当数据传输到kafka就可以根据header知道这个日志属于哪个类型。 自定义拦截器操作: a、在项目pom文件中引入flume依赖 b、找到现有的TimestampInterceptor类,copy代码到自己的自定义类里,按照需求进行修改。 c、将项目打成jar包,修改名字为app_logs_flume.jar,然后放到/opt/module/flume/lib目录下。 d、在flume配置文件指定拦截器类型。 a1.sources.r1.interceptors = i1 a1

Android多点触控技术

只谈情不闲聊 提交于 2019-12-11 09:38:05
1 简介 Android多点触控在本质上需要LCD驱动和程序本身设计上支持,目前市面上HTC、Motorola和Samsung等知名厂商只要使用电容屏触控原理的手机均可以支持多点触控Multitouch技术,对于网页缩放、手势操作上有更好的用户体验。 在Android平台上事件均使用了MotionEvent对象方式处理,比如开始触控时会触发ACTION_DOWN,而移动操作时为 ACTION_MOVE,最终放开手指时触发ACTION_UP事件。当然还有用户无规则的操作可能触发ACTION_CANCEL这个动作。 需要注意的是:Android的多点触控功能需要运行在Android 2.0版本以上。 首先Android开发网提醒大家多点触控需要LCD驱动和应用软件两个支持才能实现,所以部分比较老的,比如Android 2.0以前或在北美上市的手机可能无法支持多点触控在固件上,由于Apple专利原因在欧洲和亚太地区的Android 2.0以后的新款机型固件均已经在屏幕驱动中支持,同时模拟器也无法实现多点触控的测试。 2 实现步骤   1)第一种情况是直接重载Activity中的onTouchEvent方法。   对于onTouchEvent方法的参数MotionEvent,我们可以详细处理来实现对多点触控的了解,比如 event.getAction() //获取触控动作比如ACTION

netty在web项目中的启动与销毁

[亡魂溺海] 提交于 2019-12-11 03:27:09
@PostConstruct 被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。 @PreDestroy 销毁bean之前操作 刚开始只做了启动netty没做销毁的,由此引发了一些坑。我是打的war包(和其他http的业务一起的,求轻喷)在linux服务器的tomcat shutdown之后,netty线程还在,端口依然被占用着,tomcat进程还一直在,并且一直没回收。项目需要重新发布的话需要kill掉tomcat进程,删除webapps下面的项目后重新发布才可以(而且有时候因为一些不可描述的原因想要局部更新某个class,因为netty一直没被回收,替换了class文件重启依然无效,这个困扰了我很久,最后才发现是这个问题。) 记录一下。 package com.netty.server; import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.netty.server.gprs.Server; import org.slf4j.Logger; import org.slf4j.LoggerFactory;