欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android仿QQ复制昵称效果2

程序员文章站 2023-10-31 22:18:58
本文同步自http://javaexception.com/archives/77 背景: 在上一篇文章中,给出了一种复制QQ效果的方案,今天就来讲讲换一种方式实现。主要依赖的是一个开源项目https://github.com/shangmingchao/PopupList。 解决办法: Popup ......

本文同步自

背景:

在中,给出了一种复制qq效果的方案,今天就来讲讲换一种方式实现。主要依赖的是一个开源项目https://github.com/shangmingchao/popuplist

解决办法:

popuplist.java的代码封装的比较完善,用纯java代码实现view效果,不需要使用图片,xml资源文件,引入的话,只需要copy popuplist.java代码到项目工程中。

剩下的就是调用了。这里不分析源码,源码比较简单,只讲如何使用的。

popuplist popuplist = new popuplist(this);
list<string> popupmenuitemlist = new arraylist<>(arrays.aslist("复制qq号"));
popuplist.bind(tvqqnum, popupmenuitemlist, new popuplist.popuplistlistener() {
    @override
    public boolean showpopuplist(view adapterview, view contextview, int contextposition) {
        return true;
    }
 
    @override
    public void onpopuplistclick(view contextview, int contextposition, int position) {
        clipboardmanager cm = (clipboardmanager) getsystemservice(context.clipboard_service);
        clipdata clipdata = clipdata.newplaintext("label", "10001");
        cm.setprimaryclip(clipdata);
    }
});
popuplist popuplist = new popuplist(this);
list<string> popupmenuitemlist = new arraylist<>(arrays.aslist("复制"));
popuplist.bind(tvusername, popupmenuitemlist, new popuplist.popuplistlistener() {
    @override
    public boolean showpopuplist(view adapterview, view contextview, int contextposition) {
        return true;
    }
 
    @override
    public void onpopuplistclick(view contextview, int contextposition, int position) {
        clipboardmanager cm = (clipboardmanager) getsystemservice(context.clipboard_service);
        clipdata clipdata = clipdata.newplaintext("label", "天天");
        cm.setprimaryclip(clipdata);
    }
});

用法很简单。popuplist支持单个,也支持数组形式的结构,如朋友圈点赞的那种效果等。

参考资料:

https://github.com/shangmingchao/popuplist