虽然工作很忙,水平也不高,但是我总是喜欢总结点东西,这样才能进步
今儿我实现的是PopupWindows的改装,实现的效果呢 如下
看效果其实平平无奇,它的魅力在于里面功能强大,实用简单
里面封装了好些个方法,其中比较重要的两个
1:public void setAnimStyle(int mAnimStyle); 弹出时用什么动画效果,总共提供了五种
里面参数
public static final int ANIM_GROW_FROM_LEFT = 1;//从左边弹出
public static final int ANIM_GROW_FROM_RIGHT = 2;
public static final int ANIM_GROW_FROM_CENTER = 3;
public static final int ANIM_REFLECT = 4;//闪出
public static final int ANIM_AUTO = 5;
这个方法不用多说,源码将演示如何实用,重点是下个
2:public void setDeletePostion(int deletePostion) //这个方法 这用来指定那个 item不显示,
为什么要这样呢?因为上面三个界面 我只加载了一次,只是在需要的时候让某个不加载而已
[java] view
plaincopyprint?
- <span style="font-size:18px;"> public static void showStatusQuickAction(final Context context, View v,
- int deletePostion) {
- QuickAction quickAction = new QuickAction(context,
- QuickAction.HORIZONTAL);
- <span style="color:#ff0000;">quickAction.setDeletePostion(deletePostion);</span>
- quickAction.addActionItem(new ActionItem(ID_FIRST, context
- .getString(R.string.status_chat), context.getResources()
- .getDrawable(R.drawable.status_qme)));
- quickAction.addActionItem(new ActionItem(ID_SECOND, context
- .getString(R.string.status_available), context.getResources()
- .getDrawable(R.drawable.status_online)));
- quickAction.addActionItem(new ActionItem(ID_THIRDS, context
- .getString(R.string.status_away), context.getResources()
- .getDrawable(R.drawable.status_leave)));
- quickAction.show(v);
- quickAction.setAnimStyle(QuickAction.ANIM_GROW_FROM_CENTER);
- quickAction
- .setOnActionItemClickListener(new OnActionItemClickListener() {
- @Override
- public void onItemClick(QuickAction source, int pos,
- int actionId) {
- Intent intent = new Intent();
- switch (pos) {
- case ID_FIRST:
- intent.setClass(context, Activity1.class);
- break;
- case ID_SECOND:
- intent.setClass(context, Activity2.class);
- break;
- case ID_THIRDS:
- intent.setClass(context, Activity3.class);
- break;
- default:
- break;
- }
- context.startActivity(intent);
- }
- });
- }</span>
这样调用的时候就如容易:
mBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Util.showStatusQuickAction(context, v, Util.ID_FIRST);
}
});
其中 Util.ID_FIRST(这里是第一页)就是要隐藏的页,也是当前是第一页,就不让第一页的 item 显示,因为没有意义,里面具体实现的原理,就不解释了,很好理解,下面附上源码。最后补充一点 这是我在一个大神的基础上改进而来
源码下载