android 新浪微博的点赞功能实现,Android PraiseTextView实现朋友圈点赞功能
PraiseTextView
说明
我是将朋友圈分成了几个独立模块单独自定义的View,通过回调完成交互,耦合性算是非常低了,主要有以下及部分:
1.评论布局(自定义TextView)
2.点赞布局(原理和评论的自定义TextView一样,都是用的SpannableString)
3.图片列表(出门右转,理论上没有数量限制,和listView配合使用也很好,缓存也自己处理了)
我也是找第三方例子不好找,于是自己写了一个,我和同事还打算做一套IM系统,app和后台都要做,我们自己定义sdk,我们还要封装H5,类似hbuilder如果有什么问题,可以联系我。
全是跳转到GitHub上的链接,源码也在GitHub上
示例
主要方法
mPraiseTextView.setData (mPraiseInfos);//设置数据
mPraiseTextView.setNameTextColor (Color.BLUE);//设置名字字体颜色
mPraiseTextView.setIcon (R.drawable.emoji_1f0cf);//设置图标
mPraiseTextView.setMiddleStr (",");//设置分割文本
mPraiseTextView.setIconSize (new Rect (0,0,100,100));//设置图标大小,默认与字号匹配
mPraiseTextView.setonPraiseListener()//设置监听
onClick (int position, PraiseTextView.PraiseInfo mPraiseInfo)
position是第几个点赞的人,mInfo是这条点赞的信息
onOtherClick
内部处理了点击文字会触发两个回调的问题,这个是点击非文字或者没有单独定义点击事件的回调
布局
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.lujianchao.praisetextview.MainActivity">
android:layout_width="match_parent"
android:id="@+id/praisetextview"
android:layout_height="wrap_content"
/>
android:id="@+id/log"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"/>
代码
public class MainActivity extends AppCompatActivity {
private PraiseTextView mPraiseTextView;
private TextView mTextView;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
mPraiseTextView = (PraiseTextView) findViewById (R.id.praisetextview);
mTextView = (TextView) findViewById (R.id.log);
mTextView.setMovementMethod (ScrollingMovementMethod.getInstance ());
List mPraiseInfos = new ArrayList<> ();
mPraiseInfos.add (new PraiseTextView.PraiseInfo ().setId (111).setNickname ("张三").setLogo ("http://lujianchao.com/images/headimg/1.jpg"));
mPraiseInfos.add (new PraiseTextView.PraiseInfo ().setId (222).setNickname ("张四").setLogo ("http://lujianchao.com/images/headimg/2.jpg"));
mPraiseInfos.add (new PraiseTextView.PraiseInfo ().setId (333).setNickname ("张五").setLogo ("http://lujianchao.com/images/headimg/3.jpg"));
mPraiseInfos.add (new PraiseTextView.PraiseInfo ().setId (444).setNickname ("张六").setLogo ("http://lujianchao.com/images/headimg/4.jpg"));
mPraiseInfos.add (new PraiseTextView.PraiseInfo ().setId (555).setNickname ("赵四").setLogo ("http://lujianchao.com/images/headimg/5.jpg"));
mPraiseInfos.add (new PraiseTextView.PraiseInfo ().setId (666).setNickname ("赵三").setLogo ("http://lujianchao.com/images/headimg/6.jpg"));
mPraiseInfos.add (new PraiseTextView.PraiseInfo ().setId (777).setNickname ("李大").setLogo ("http://lujianchao.com/images/headimg/7.jpg"));
mPraiseInfos.add (new PraiseTextView.PraiseInfo ().setId (888).setNickname ("李二").setLogo ("http://lujianchao.com/images/headimg/8.jpg"));
mPraiseInfos.add (new PraiseTextView.PraiseInfo ().setId (999).setNickname ("李三").setLogo ("http://lujianchao.com/images/headimg/9.jpg"));
mPraiseTextView.setData (mPraiseInfos);//设置数据
mPraiseTextView.setNameTextColor (Color.BLUE);//设置名字字体颜色
mPraiseTextView.setIcon (R.drawable.emoji_1f0cf);//设置图标
mPraiseTextView.setMiddleStr (",");//设置分割文本
mPraiseTextView.setIconSize (new Rect (0,0,100,100));//设置图标大小,默认与字号匹配
mPraiseTextView.setonPraiseListener (new PraiseTextView.onPraiseClickListener () {
@Override
public void onClick (final int position, final PraiseTextView.PraiseInfo mPraiseInfo) {
mTextView.append ("position = [" + position + "], mPraiseInfo = [" + mPraiseInfo + "]"+"\r\n");
}
@Override
public void onOtherClick () {
mTextView.append ("onOtherClick"+"\r\n");
}
});
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程圈。
android 新浪微博的点赞功能实现,Android PraiseTextView实现朋友圈点赞功能相关推荐
- Android自定义弹窗模仿微信,Android 仿微信朋友圈点赞和评论弹出框功能
本文简单模仿微信朋友圈的点赞和评论弹出框,布局等细节请忽略,着重实现弹出框.发评论,及弹出位置的控制. 1. 微信弹出框 微信朋友圈的点赞和评论功能,有2个组成部分: 点击左下角的"更多&q ...
- android 微信评论功能,Android仿微信朋友圈点赞和评论功能
最近在做朋友圈的项目,所以写一个Android仿朋友圈点赞和评论功能Demo,代码就是简单实现了一下功能,没有做优化,凑合看. 图文排列是用的RecyclerView实现的,弹窗效果是用的自定义的Po ...
- 微信分享功能android,关于Android实现简单的微信朋友圈分享功能
1.先下载微信分享的jar包放在lib目录下,并且添加依赖, android:name=".wxapi.WXEntryActivity" android:exported=&quo ...
- android分享朋友圈功能,微信小程序实现分享至朋友圈的功能来啦
微信小程序「分享至朋友圈」能力,终于来了!(之前,我相信大部分微信小程序的开发者都是用"分享卡片"的形式,手动调用wx.createCanvasContext生成一张图片,让用户生 ...
- android朋友圈评论功能兼容沉浸式状态栏,九宫格图片显示
android朋友圈评论功能,沉浸式状态栏,九宫格图片显示器,上拉加载下拉刷新功能,可直接用到项目中 背景 在前两个项目开发过程中用到了朋友圈这个功能,包含了评论回复.九宫格图片及大图展示展示,上拉加 ...
- 仿微信朋友圈点赞和评论功能
仿微信朋友圈点赞和评论功能 最近在做朋友圈的项目,所以写一个Demo,代码就是简单实现了一下功能,没有做优化,凑合看 图文排列是用的RecyclerView实现的,弹窗效果是用的自定义的PopupWi ...
- 软件测试用例朋友圈发表功能,微信朋友圈点赞测试用例分享
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.发送一条动态后,检查是否有进入点赞功能的菜单 2.单击"赞"按钮,检查是否能被点赞 3.当无人点赞时,检查朋友圈动态点赞处显示情况 ...
- 基于Redis ZSet结构实现朋友圈点赞功能
首先我们需要分析下朋友圈点赞需要有哪些功能: 支持点赞数量的查看 支持点赞和取消点赞 支持查看哪些人点过赞 支持查看点赞的顺序 那么基于以上需求,大致的结构如下: 在数据结构上,key就是这个具体的朋 ...
- 0904 朋友圈点赞功能
程序描述 请你对朋友圈点赞功能进行测试. 尝试编写测试用例 思路: 功能测试: (1)能否正常的点赞和取消点赞. (2)点赞成功后,点赞按钮显示为取消:当取消点赞后,按钮显示赞 (3)点赞成功后,是否 ...
最新文章
- paging in linux,Linux Operating System
- 小甲鱼 OllyDbg 教程系列 (九) :Delphi 程序逆向特点
- Hystrix面试 - 深入 Hystrix 执行时内部原理
- Linux之强大的selinux
- java生成cmd jar包_Java程序运行机制及cmd编译运行探究(二) cmd编译运行Java程序并打成jar包...
- 二分法的样例 题解
- 读写文件RandomAccessFile
- websocket 压测工具 有哪些_性能测试总结(概念amp;流程amp;工具)
- 通过代理查看Myeclipse的主页
- [sklearn机器学习]线性回归模型
- 鸿蒙系统摩尔纹怎么去,PS摩尔纹如何消除?摩尔纹消除方法图文分享
- 调通sina33下的AP6212A0(WIFI+BT)(V1.1版本)
- 浅谈12306核心模型设计思路和架构设计
- cdr怎么算曲线周长_cdr怎么计算图形的周长和面积? cdr图形计算长度和面积的技巧...
- Mac无法打开CORE Keygen
- BLE4.0广播连接过程的底层剖析
- [Excel]如何去除恼人的外部链接
- 2018百度之星程序设计大赛 - 资格赛 A B C E F
- 最清晰!一篇文章读懂 OceanBase 最新的产品家族
- CS224W图机器学习笔记5-消息传递与节点分类