Android知识点四:侧栏滑动效果
来源:互联网 发布:上海希格斯网络 金融 编辑:程序博客网 时间:2024/06/05 03:44
首先准备工作:mframework.jar包(SlidingMenu)
MainActivity.java
private SlidingMenu menu;private MianAdapter mainAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);menu = new SlidingMenu(this);menu.setMenuItemBackground(R.drawable.sliding_menu_item_down, R.drawable.sliding_menu_item_release);menu.setMenuBackground(R.drawable.sliding_menu_background);// menu.setTtleHeight(Common.formatDipToPx(this, 44));menu.setBodyBackground(R.drawable.sliding_menu_body_background);mainAdapter = new MianAdapter(menu);menu.setAdapter(mainAdapter);setContentView(menu);menu.triggerItem(MianAdapter.GROUP_DEMO, MianAdapter.TOP_MENU);}Title类 公用titlebar
public abstract class SlidingMenuPage implements Callback {protected SlidingMenu menu;protected Handler handler;private View pageView;private LinearLayout mStandardLayout;private TextView mTitleTv;private ImageView mLeftImageView;private ImageView mRightImageView;public SlidingMenuPage(SlidingMenu _menu) {handler = new Handler(this);this.menu = _menu;pageView=LayoutInflater.from(menu.getContext()).inflate(R.layout.baseview, null);mStandardLayout = (LinearLayout) pageView.findViewById(R.id.standardview_abstract);mTitleTv = (TextView) pageView.findViewById(R.id.TitleText_Abstract);mLeftImageView = (ImageView) pageView.findViewById(R.id.LeftText_Abstract);mRightImageView= (ImageView) pageView.findViewById(R.id.RightText_Abstract);mLeftImageView.setImageResource(R.drawable.ico_menu_default);mLeftImageView.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {if (menu.isMenuShown()) {menu.hideMenu();}else {menu.showMenu();}}});View v = initPage();LinearLayout.LayoutParams params = null;if (Build.VERSION.SDK_INT > 7)params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);elseparams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);params.setMargins(0, 0, 0, 0);mStandardLayout.addView(v, params);}protected abstract View initPage();/** 获取页面的View实例 */public View getPage() {return pageView;}public boolean handleMessage(Message msg) {return false;}public void onActivityResult(int requestCode, int resultCode, Intent data){}public final void setTitle(CharSequence leftText) {mTitleTv.setText(leftText);}public final void setRightImageView(int resId,OnClickListener l) {mRightImageView.setVisibility(View.VISIBLE);mRightImageView.setImageResource(resId);mRightImageView.setOnClickListener(l);}public final void setLeftImageView(int resId) {mLeftImageView.setVisibility(View.VISIBLE);mLeftImageView.setImageResource(resId);}}侧边MianAdapter.java需继承MenuAdapter
public class MianAdapter extends MenuAdapter {public static final int GROUP_DEMO = 1;public static final int TOP_MENU = 2;// 信息1private static final int BILL_MENU = 3;// 信息2private static final int MONEY_MENU = 4;// 信息3private SlidingMenu menu;private SlidingMenuItem curItem;private SlidingMenuPage page = null;public MianAdapter(SlidingMenu menu) {super(menu);this.menu = menu;initData();}@Overridepublic View getGroupView(int arg0, ViewGroup arg1) {View view = LayoutInflater.from(menu.getContext()).inflate(R.layout.slidingmenu_top_item, null);TextView tvItem = (TextView) view.findViewById(R.id.item_text);ImageView ivSet = (ImageView) view.findViewById(R.id.img_set);ImageView ivFace = (ImageView) view.findViewById(R.id.img_face);return view;}@Overridepublic View getItemView(SlidingMenuItem arg0, ViewGroup arg1) {View view = LayoutInflater.from(menu.getContext()).inflate(R.layout.slidingmenu_item, null);TextView tvItem = (TextView) view.findViewById(R.id.item_text);tvItem.setText(String.valueOf(arg0.body));return view;}void initData() {setGroup(GROUP_DEMO, "");SlidingMenuItem item = new SlidingMenuItem();item.id = TOP_MENU;item.body = menu.getResources().getString(R.string.top_menu);setItem(GROUP_DEMO, item);item = new SlidingMenuItem();item.id = BILL_MENU;item.body = menu.getResources().getString(R.string.bill_menu);setItem(GROUP_DEMO, item);item = new SlidingMenuItem();item.id = MONEY_MENU;item.body = menu.getResources().getString(R.string.money_menu);setItem(GROUP_DEMO, item);}public SlidingMenuPage getCurrentSlidingMenuPage(){return page;}// 可添加页面链接@Overridepublic boolean onItemTrigger(SlidingMenuItem item) {if (curItem != null && curItem.equals(item) && item.group == GROUP_DEMO) {return false;}curItem = item;switch (item.group) {case GROUP_DEMO: {switch (item.id) {case TOP_MENU: {page = new TopPage(menu);}break;case BILL_MENU: {page = new BillPage(menu);}break;case MONEY_MENU: {page = new MoneyPage(menu);}break;}if (page != null) {menu.setBodyView(page.getPage());}}break;}return super.onItemTrigger(item);}}公用titlebar布局(baseview.xml)
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:id="@+id/standardview_abstract" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/titlelayout_abstract" android:layout_marginTop="-2dip" android:background="@drawable/sliding_menu_body_background" android:orientation="vertical" > </LinearLayout> <LinearLayout android:id="@+id/titlelayout_abstract" android:layout_width="fill_parent" android:layout_height="50dip" android:background="@drawable/base_titlebar" android:orientation="horizontal" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_marginLeft="5dip" android:gravity="center_vertical" android:orientation="horizontal" > <ImageView android:id="@+id/LeftText_Abstract" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="center" android:background="@drawable/baseview_topbtn_selector" android:src="@drawable/ico_menu_default" /> <Button android:id="@+id/LeftText_Abstract_btn" android:layout_width="55dip" android:layout_height="fill_parent" android:gravity="center" android:textSize="16sp" android:visibility="gone" /> </LinearLayout> <TextView android:id="@+id/TitleText_Abstract" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:textColor="@color/white" android:textSize="20sp" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentRight="true" android:layout_marginRight="5dip" android:gravity="center_vertical" android:orientation="horizontal" > <ImageView android:id="@+id/RightText_Abstract" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="center" android:src="@drawable/ico_back_default" android:background="@drawable/baseview_topbtn_selector" android:visibility="gone" /> <Button android:id="@+id/RightText_Abstract_btn" android:layout_width="55dip" android:layout_height="fill_parent" android:gravity="center" android:textSize="16sp" android:visibility="gone" /> </LinearLayout> </RelativeLayout> </LinearLayout> <RelativeLayout android:id="@+id/CoverView_Abstract" android:layout_width="fill_parent" android:layout_height="fill_parent" android:visibility="gone" > </RelativeLayout></RelativeLayout>
侧边Group布局(slidingmenu_top_item.xml)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/bg_titlebar03" android:orientation="horizontal" android:paddingLeft="10dip" android:paddingRight="10dip" > <ImageView android:id="@+id/img_face" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:src="@drawable/bg_face" /> <TextView android:id="@+id/text_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="8dip" android:layout_weight="1" android:text="会说话的猫" android:textColor="@color/slidingmenu_text_color" android:textSize="16sp" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ico_line" /> <ImageView android:id="@+id/img_set" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="10dip" android:src="@drawable/ico_set_selector" /></LinearLayout>
侧边item布局(slidingmenu_item.xml)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/sliding_menu_item_release" android:orientation="horizontal" android:padding="10dip" > <TextView android:id="@+id/item_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="信息1" android:textSize="16sp" android:layout_weight="1" android:textColor="@color/slidingmenu_text_color" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:src="@drawable/ico_arrows_selector"/></LinearLayout>
jar包下载:mframework.jar
0 0
- Android知识点四:侧栏滑动效果
- Android知识点四:头部滑动菜单
- android 滑动效果---左右滑动
- QQ滑动侧栏效果
- Android ListView 侧滑效果实现(滑动展开、滑动删除)
- Android ListView 侧滑效果实现(滑动展开、滑动删除)
- Android ListView 侧滑效果实现(滑动展开、滑动删除)
- Android 双向左右滑动侧边栏效果
- android 幕滑动效果
- Android 滑动效果----------ViewFlipper
- Android引导滑动效果
- Android滑动屏幕效果
- android 滑动动画效果
- android 滑动返回效果
- Android滑动回弹效果
- Android ViewPager禁止滑动、滑动效果
- Android 滑动效果基础篇(四)—— Gallery + GridView
- Android 滑动效果基础篇(四)—— Gallery + GridView
- BITACM 1043 缘分
- 练手小程序2.链表翻转问题
- asmack经常断线
- SSH框架常见问题及解决
- 继承与派生4:派生类中对基类成员的重定义
- Android知识点四:侧栏滑动效果
- 还只会div+css浮动布局吗?你OUT了!听"老罗"讲解inline-block布局技术
- 关于C语言char *指向的字符串
- Requirement-Driven Linux Shell Programming
- 杭电-三角形
- 使用 std::stringstream,小心 内存! 适时 清空 缓冲 ……
- POJ 3468
- 安卓从一个Activity跳转到另一个Activity传递数据实现
- 闭包,作用域,预编译应用例子汇总