PraiseTextView

说明
我是将朋友圈分成了几个独立模块单独自定义的View,通过回调完成交互,耦合性算是非常低了,主要有以下及部分:
1.评论布局(自定义TextView)
CommentListTextView
Lu_PingLunLayout
2.点赞布局(原理和评论的自定义TextView一样,都是用的SpannableString)
PraiseTextView
3.图片列表(出门右转,理论上没有数量限制,和listView配合使用也很好,缓存也自己处理了)
MultiImageViewLayout
我也是找第三方例子不好找,于是自己写了一个,我和同事还打算做一套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
内部处理了点击文字会触发两个回调的问题,这个是点击非文字或者没有单独定义点击事件的回调
布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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"> <com.lujianchao.praisetextview.PraiseTextView android:layout_width="match_parent" android:id="@+id/praisetextview" android:layout_height="wrap_content" /> <TextView android:id="@+id/log" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical"/> </LinearLayout>
代码
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<PraiseTextView.PraiseInfo> 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");
}
});
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# PraiseTextView
# 朋友圈点赞
# 简单实用的Android UI微博动态点赞效果
# Android 仿微信朋友圈点赞和评论弹出框功能
# Android项目开发 教你实现Periscope点赞效果
# Android中Listview点赞功能的实现
# Android实现点赞动画(27)
# Android中使用PopupWindow 仿微信点赞和评论弹出
# Android Listview点赞问题关于图片重复问题
# Android实现朋友圈点赞列表
# Android高级UI特效仿直播点赞动画效果
# Android控件FlowLikeView实现点赞动画
# 自定义
# 几个
# 回调
# 的人
# 都是
# 我是
# 有什么
# 很好
# 成了
# 我和
# 也在
# 这条
# 要做
# 写了
# 第三方
# 理论上
# 大家多多
# 跳转到
# 右转
# 主要有
相关文章:
江苏网站制作公司有哪些,江苏书法考级官方网站?
定制建站流程解析:需求评估与SEO优化功能开发指南
视频网站app制作软件,有什么好的视频聊天网站或者软件?
如何制作网站标识牌,动态网站如何制作(教程)?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
如何基于PHP生成高效IDC网络公司建站源码?
如何在IIS服务器上快速部署高效网站?
如何通过WDCP绑定主域名及创建子域名站点?
建站之星如何通过成品分离优化网站效率?
如何通过.red域名打造高辨识度品牌网站?
如何在新浪SAE免费搭建个人博客?
Swift中循环语句中的转移语句 break 和 continue
Android使用GridView实现日历的简单功能
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
如何在阿里云部署织梦网站?
如何破解联通资金短缺导致的基站建设难题?
网站制作公司排行榜,四大门户网站排名?
创业网站制作流程,创业网站可靠吗?
linux top下的 minerd 木马清除方法
香港服务器租用费用高吗?如何避免常见误区?
家具网站制作软件,家具厂怎么跑业务?
如何在宝塔面板中创建新站点?
制作网站的公司有哪些,做一个公司网站要多少钱?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
如何生成腾讯云建站专用兑换码?
建站之星收费标准详解:套餐费用及年费价格表一览
再谈Python中的字符串与字符编码(推荐)
如何通过可视化优化提升建站效果?
网站制作模板下载什么软件,ppt模板免费下载网站?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
大连网站设计制作招聘信息,大连投诉网站有哪些?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
定制建站哪家更专业可靠?推荐榜单揭晓
如何通过虚拟主机快速搭建个人网站?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
建站主机服务器选型指南与性能优化方案解析
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
制作门户网站的参考文献在哪,小说网站怎么建立?
如何安全更换建站之星模板并保留数据?
建站主机SSH密钥生成步骤及常见问题解答?
建站之星安装模板失败:服务器环境不兼容?
建站之星云端配置指南:模板选择与SEO优化一键生成
简历在线制作网站免费版,如何创建个人简历?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
建站之星IIS配置教程:代码生成技巧与站点搭建指南
*请认真填写需求信息,我们会在24小时内与您取得联系。