Android直播代码中动态功能的实现

本文以云豹直播系统为例,介绍如何在Android直播app中实现动态功能,包括文字、图片、视频和音频的发布,以及评论、点赞等互动功能。通过RecyclerView和不同类型的ViewHolder展示动态列表内容。
摘要由CSDN通过智能技术生成

动态功能,类似微信朋友圈,用户可以发布文字图片视频音频等内容,分享自己的日常生活。目前直播app是市场的宠儿,在直播app中加入动态功能可以增加趣味性和用户粘性,是互动直播之外的重要内容。下面以云豹直播系统的直播代码为例,为大家展现具体的直播代码实现方式

注意:

  1. 本文仅用于Android端直播代码
  2. 本文仅供参考

如上图所示,动态页面由一个列表呈现 ,根据动态的内容,分为图片、视频和音频等不同类型,不同类型的内容使用不同的布局,图片类动态根据图片的数量使用不同的布局。图片、视频和音频可以进行点击播放,观众可以对本条动态进行评论、点赞或举报等。

这个直播代码的列表使用RecyclerView,根据不同的类型,使用不同的item布局和ViewHolder进行展示。
具体直播代码如下:

public class ActiveAdapter extends RefreshAdapter<ActiveBean> {

    private View.OnClickListener mItemClickListener;
    private View.OnClickListener mAvatarClickListener;
    private View.OnClickListener mFollowClickListener;
    private View.OnClickListener mLikeClickListener;
    private View.OnClickListener mMoreClickListener;
    private NineGridLayout.ActionListener mNineGridListener;
    private ActiveVoiceLayout.ActionListener mVoiceListener;
    private View.OnClickListener mVideoClickListener;
    private Drawable[] mLikeDrawables;
    private String mFollowString;
    private String mUnFollowString;
    private String mStatusString0;
    private String mStatusString2;
    private int mStatusColor0;
    private int mStatusColor2;
    private ActiveVoiceLayout mNowPlayVoiceLayout;//当前正在播放的语音控件
    private VoiceMediaPlayerUtil mPlayerUtil;
    private DownloadUtil mDownloadUtil;
    private Drawable mFollowDrawable;
    private Drawable mUnFollowDrawable;
    private int mFollowColor;
    private int mUnFollowColor;

    public ActiveAdapter(Context context) {
        super(context);
        init(context);
    }

    public ActiveAdapter(Context context, List<ActiveBean> list) {
        super(context, list);
        init(context);
    }

    private void init(Context context) {
        mLikeDrawables = new Drawable[6];
        mLikeDrawables[0] = ContextCompat.getDrawable(context, R.mipmap.icon_active_like_0);
        mLikeDrawables[1] = ContextCompat.getDrawable(context, R.mipmap.icon_active_like_1);
        mLikeDrawables[2] = ContextCompat.getDrawable(context, R.mipmap.icon_active_like_2);
        mLikeDrawables[3] = ContextCompat.getDrawable(context, R.mipmap.icon_active_like_3);
        mLikeDrawables[4] = ContextCompat.getDrawable(context, R.mipmap.icon_active_like_4);
        mLikeDrawables[5] = ContextCompat.getDrawable(context, R.mipmap.icon_active_like_5);
        mFollowDrawable = ContextCompat.getDrawable(context, R.drawable.btn_active_follow_1);
        mUnFollowDrawable = ContextCompat.getDrawable(context, R.drawable.btn_active_follow_0);
        mFollowColor = ContextCompat.getColor(context, R.color.gray5);
        mUnFollowColor = ContextCompat.getColor(context, R.color.global);
        mFollowString = WordUtil.getString(R.string.following);
        mUnFollowString = WordUtil.getString(R.string.follow);
        mStatusString0 = WordUtil.getString(R.string.active_status_0);
        mStatusString2 = WordUtil.getString(R.string.active_status_2);
        mStatusColor0 = ContextCompat.getColor(mContext, R.color.gray1);
        mStatusColor2 = ContextCompat.getColor(mContext, R.color.global);
        mItemClickListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!ClickUtil.canClick()) {
                    return;
                }
                Object tag = v.getTag();
                if (tag != null) {
                    if (!(mContext instanceof ActiveDetailActivity)) {
                        ActiveDetailActivity.forward(mContext, (ActiveBean) tag);
                    }
                }
            }
        };
        mAvatarClickListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!ClickUtil.canClick()) {
                    return;
                }
                Object tag = v.getTag();
                if (tag == null) {
                    return;
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值