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实现朋友圈点赞功能相关推荐

  1. Android自定义弹窗模仿微信,Android 仿微信朋友圈点赞和评论弹出框功能

    本文简单模仿微信朋友圈的点赞和评论弹出框,布局等细节请忽略,着重实现弹出框.发评论,及弹出位置的控制. 1. 微信弹出框 微信朋友圈的点赞和评论功能,有2个组成部分: 点击左下角的"更多&q ...

  2. android 微信评论功能,Android仿微信朋友圈点赞和评论功能

    最近在做朋友圈的项目,所以写一个Android仿朋友圈点赞和评论功能Demo,代码就是简单实现了一下功能,没有做优化,凑合看. 图文排列是用的RecyclerView实现的,弹窗效果是用的自定义的Po ...

  3. 微信分享功能android,关于Android实现简单的微信朋友圈分享功能

    1.先下载微信分享的jar包放在lib目录下,并且添加依赖, android:name=".wxapi.WXEntryActivity" android:exported=&quo ...

  4. android分享朋友圈功能,微信小程序实现分享至朋友圈的功能来啦

    微信小程序「分享至朋友圈」能力,终于来了!(之前,我相信大部分微信小程序的开发者都是用"分享卡片"的形式,手动调用wx.createCanvasContext生成一张图片,让用户生 ...

  5. android朋友圈评论功能兼容沉浸式状态栏,九宫格图片显示

    android朋友圈评论功能,沉浸式状态栏,九宫格图片显示器,上拉加载下拉刷新功能,可直接用到项目中 背景 在前两个项目开发过程中用到了朋友圈这个功能,包含了评论回复.九宫格图片及大图展示展示,上拉加 ...

  6. 仿微信朋友圈点赞和评论功能

    仿微信朋友圈点赞和评论功能 最近在做朋友圈的项目,所以写一个Demo,代码就是简单实现了一下功能,没有做优化,凑合看 图文排列是用的RecyclerView实现的,弹窗效果是用的自定义的PopupWi ...

  7. 软件测试用例朋友圈发表功能,微信朋友圈点赞测试用例分享

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.发送一条动态后,检查是否有进入点赞功能的菜单 2.单击"赞"按钮,检查是否能被点赞 3.当无人点赞时,检查朋友圈动态点赞处显示情况 ...

  8. 基于Redis ZSet结构实现朋友圈点赞功能

    首先我们需要分析下朋友圈点赞需要有哪些功能: 支持点赞数量的查看 支持点赞和取消点赞 支持查看哪些人点过赞 支持查看点赞的顺序 那么基于以上需求,大致的结构如下: 在数据结构上,key就是这个具体的朋 ...

  9. 0904 朋友圈点赞功能

    程序描述 请你对朋友圈点赞功能进行测试. 尝试编写测试用例 思路: 功能测试: (1)能否正常的点赞和取消点赞. (2)点赞成功后,点赞按钮显示为取消:当取消点赞后,按钮显示赞 (3)点赞成功后,是否 ...

最新文章

  1. paging in linux,Linux Operating System
  2. 小甲鱼 OllyDbg 教程系列 (九) :Delphi 程序逆向特点
  3. Hystrix面试 - 深入 Hystrix 执行时内部原理
  4. Linux之强大的selinux
  5. java生成cmd jar包_Java程序运行机制及cmd编译运行探究(二) cmd编译运行Java程序并打成jar包...
  6. 二分法的样例 题解
  7. 读写文件RandomAccessFile
  8. websocket 压测工具 有哪些_性能测试总结(概念amp;流程amp;工具)
  9. 通过代理查看Myeclipse的主页
  10. [sklearn机器学习]线性回归模型
  11. 鸿蒙系统摩尔纹怎么去,PS摩尔纹如何消除?摩尔纹消除方法图文分享
  12. 调通sina33下的AP6212A0(WIFI+BT)(V1.1版本)
  13. 浅谈12306核心模型设计思路和架构设计
  14. cdr怎么算曲线周长_cdr怎么计算图形的周长和面积? cdr图形计算长度和面积的技巧...
  15. Mac无法打开CORE Keygen
  16. BLE4.0广播连接过程的底层剖析
  17. [Excel]如何去除恼人的外部链接
  18. 2018百度之星程序设计大赛 - 资格赛 A B C E F
  19. 最清晰!一篇文章读懂 OceanBase 最新的产品家族
  20. CS224W图机器学习笔记5-消息传递与节点分类

热门文章

  1. 云炬Android开发笔记 7登陆注册功能开发
  2. 【完结】林轩田机器学习技法终章
  3. 简述Hadoop和Spark的异同
  4. 如何让整个表格高度固定_Saas产品中,表格设计有哪些要点
  5. 在网页上启动你的应用程序
  6. Asp.net常用技巧
  7. jquery 跨域 没有权限
  8. 万字长文带你一文读完Effective C++
  9. SQL注入之二次注入(sql-lab第24关)
  10. 使用汇编软件emu8086输出十次Hello World!