Android仿直播特效之刷礼物

本文介绍了在Android平台上如何实现直播刷礼物的UI特效,包括创建BaseActivity和BaseFrag,利用DialogFragment和ViewPager实现交互,以及礼物的动画效果,如放大和自动清理。详细讲解了刷礼物的过程,包括礼物的生成、动画执行以及3秒后自动清理的逻辑。
摘要由CSDN通过智能技术生成

一、概述

继续咱们的直播之旅,过段时间再把推流拉流写上博客,暂时还是UI特效,先上图


二、创建我们的BaseActivity和BaseFrag

/**
 * @author 刘洋巴金
 * @date 2017-5-3
 * 
 * 基类
 * */
public abstract class BaseActivity extends FragmentActivity implements OnClickListener{

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(getLayoutId());
		
		initBase();
		initView();
		initData();
		initListener();
	}

	/**
	 * 设置子类getLayoutId
	 * */
	public abstract int getLayoutId();
	
	/**
	 * 基类初始化
	 * */
	public void initBase() {
	}
	
	/**
	 * 子类初始化View
	 * */
	public void initView() {
	}

	/**
	 * 子类初始化数据
	 * */
	public void initData() {
	}
	
	/**
	 * 子类初始化监听
	 * */
	public void initListener() {
	}
	
	@Override
	public void onClick(View v) {
	}
}

baseFrag

/**
 * @author 刘洋巴金
 * @date 2017-5-3
 * 
 * Frag基类
 * */
public abstract class BaseFrag extends Fragment implements OnClickListener{

	public View view;
	public Context myContext;
	
	@Override
	public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

		view = inflater.inflate(getLayoutId(), null);
		
		// 初始化
		initBase();
		initView();
		initData();
		initListener();
		return view;
	}
	
	/**
	 * 设置子类getLayoutId
	 * */
	public abstract int getLayoutId();
	
	/**
	 * 基类初始化
	 * */
	public void initBase() {
		
		myContext = getActivity();
	}
	
	/**
	 * 子类初始化View
	 * */
	public void initView() {
	}

	/**
	 * 子类初始化数据
	 * */
	public void initData() {
	}
	
	/**
	 * 子类初始化监听
	 * */
	public void initListener() {
	}
	
	@Override
	public void onClick(View v) {
	}
}
和baseActivity差不多

这个就是我们的基类,然后是我们的主类

/**
 * @author 刘洋巴金
 * @date 2017-5-3
 * 
 * 主页
 * */
public class MainActivity extends BaseActivity {

	@Override
	public int getLayoutId() {
		
		return R.layout.activity_main;
	}

	@Override
	public void initData() {

		super.initData();

		// 加载直播fragment
		LiveFrag liveFrag = new LiveFrag();
		getSupportFragmentManager().beginTransaction().add(R.id.fl_root, liveFrag).commit();

        // 加载
		new InteractiveFrag().show(getSupportFragmentManager(), "InteractiveFrag");
	}
}
经过封装简单了很多吧?然后是加载fragment,LiveFrag就是我们的直播frag,现在目前为止就是一个图片,以后增加拉流等相关功能,然后加载我们的用户交互InteractiveFrag。

它是继承DialogFragment,这个不明白的可以百度查询,而这个也不是必须,可以自定义,

这里最主要的逻辑就是加了一个viewpager, 共加载了2个fragment,一个是我们交互用的,一个是透明的,这样是为了滑动隐藏我们的交互的功能,如上图最后的操作。EmptyFrag背景设置为透明,无任何逻辑

<
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值