Android仿QQ未读消息--红点拖拽删除【源代码】
程序员文章站
2022-05-07 11:30:44
本demo是一款仿qq未读消息拖拽删除的例子,继承relativelayout的waterdrop实现了圆形图标功能、继承imageview的circleimageview...
本demo是一款仿qq未读消息拖拽删除的例子,继承relativelayout的waterdrop实现了圆形图标功能、继承imageview的circleimageview圆形图片功能、效果非常不错、很适合有圆形设计的哥们、效果图片如下
circleimageview核心代码
private void updateshadermatrix() { float scale; float dx = 0; float dy = 0; mshadermatrix.set(null); if (mbitmapwidth * mdrawablerect.height() > mdrawablerect.width() * mbitmapheight) { scale = mdrawablerect.height() / (float) mbitmapheight; dx = (mdrawablerect.width() - mbitmapwidth * scale) * 0.5f; } else { scale = mdrawablerect.width() / (float) mbitmapwidth; dy = (mdrawablerect.height() - mbitmapheight * scale) * 0.5f; } mshadermatrix.setscale(scale, scale); mshadermatrix.posttranslate((int) (dx 0.5f) mborderwidth, (int) (dy 0.5f) mborderwidth); mbitmapshader.setlocalmatrix(mshadermatrix); }
waterdrop核心代码
public boolean ontouchevent(motionevent event) { viewgroup parent = getscrollableparent(); switch (event.getaction()) { case motionevent.action_down: mholdereventflag = !covermanager.getinstance().isrunning(); if (mholdereventflag) { parent.requestdisallowintercepttouchevent(true); covermanager.getinstance().start(this, event.getrawx(), event.getrawy(), mondragcompetelistener); } break; case motionevent.action_move: if (mholdereventflag) { covermanager.getinstance().update(event.getrawx(), event.getrawy()); } break; case motionevent.action_up: case motionevent.action_cancel: if (mholdereventflag) { parent.requestdisallowintercepttouchevent(false); covermanager.getinstance().finish(this, event.getrawx(), event.getrawy()); } break; } return true; }
最后给贴上demo的源代码,有兴趣的朋友可以下载看看
http://pan.baidu.com/s/1ku8ogl5
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!