Github上的Android项目介绍之ListViewAnimation(针对listView item的侧滑菜单)(1)
来源:互联网 发布:淘宝上的好评怎么写 编辑:程序博客网 时间:2024/06/07 00:22
demo源码,需要可以下载
1.这是一个github开源项目,先去github上面下载,github下载地址。
2.将SwipeMenuListView项目,导入,然后新建项目如果要引用,要设置为相应的lid应用,如图勾选。
3.activity_main.xml 的布局文件代码:
<com.baoyz.swipemenulistview.SwipeMenuListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent" />
主要是加入这个控件。
4.item_list_app.xml布局文件,代码如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="8dp" > <ImageView android:id="@+id/iv_icon" android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_toRightOf="@+id/iv_icon" android:text="name" android:textColor="@android:color/black" android:textSize="18sp" /> </RelativeLayout>
5.加入ic_delete.png图片。
6.定义扩展自BaseAdapter的adapter,用来提供列表数据。
同时重写swipeMenu的回调方法,主要是实现SwipeMenuCreator 这个类的create()方法,和相应的OnMenuItemClickListener接口。至于数据来源则是List类型的,是由 getPackageManager().getInstalledApplications(0); 方法获得。
如果要重用这个代码,需要实现SwipeMenuCreator 类和相应的OnMenuItemClickListener接口。
主要代码如下:
public class MainActivity extends Activity { private List<ApplicationInfo> mAppList; private AppAdapter mAdapter; private SwipeMenuListView mListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mAppList = getPackageManager().getInstalledApplications(0); mListView = (SwipeMenuListView) findViewById(R.id.listView); mAdapter = new AppAdapter(); mListView.setAdapter(mAdapter); SwipeMenuCreator creator = new SwipeMenuCreator() { @Override public void create(SwipeMenu menu) { // create "open" item SwipeMenuItem openItem = new SwipeMenuItem( getApplicationContext()); // set item background openItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9, 0xCE))); // set item width openItem.setWidth(dp2px(90)); // set item title openItem.setTitle("Open"); // set item title fontsize openItem.setTitleSize(18); // set item title font color openItem.setTitleColor(Color.WHITE); // add to menu menu.addMenuItem(openItem); // create "delete" item SwipeMenuItem deleteItem = new SwipeMenuItem( getApplicationContext()); // set item background deleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9, 0x3F, 0x25))); // set item width deleteItem.setWidth(dp2px(90)); // set a icon deleteItem.setIcon(R.drawable.ic_delete); // add to menu menu.addMenuItem(deleteItem); } }; // set creator mListView.setMenuCreator(creator); mListView.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(int position, SwipeMenu menu, int index) { switch (index) { case 0: // open Toast.makeText(getApplicationContext(), "Open", Toast.LENGTH_SHORT).show(); break; case 1: // delete Toast.makeText(getApplicationContext(), "Delete", Toast.LENGTH_SHORT).show(); // mAppList.remove(position); // mAdapter.notifyDataSetChanged(); break; } // false : close the menu; true : not close the menu return false; } }); } class AppAdapter extends BaseAdapter { @Override public int getCount() { return mAppList.size(); } @Override public ApplicationInfo getItem(int position) { return mAppList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = View.inflate(getApplicationContext(), R.layout.item_list_app, null); new ViewHolder(convertView); } ViewHolder holder = (ViewHolder) convertView.getTag(); ApplicationInfo item = getItem(position); holder.iv_icon.setImageDrawable(item.loadIcon(getPackageManager())); holder.tv_name.setText(item.loadLabel(getPackageManager())); return convertView; } class ViewHolder { ImageView iv_icon; TextView tv_name; public ViewHolder(View view) { iv_icon = (ImageView) view.findViewById(R.id.iv_icon); tv_name = (TextView) view.findViewById(R.id.tv_name); view.setTag(this); } } } private int dp2px(int dp) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics()); } }
。
2 0
- Github上的Android项目介绍之ListViewAnimation(针对listView item的侧滑菜单)(1)
- 菜单(四)给ListView的item添加上下文菜单
- 针对ListView item的侧滑删除和支持下拉时HeaderView缩放的ListView、ScrollView
- Android基础之ListView(Item)的使用
- android ListView的item侧滑删除
- android listview系列之item的点击事件及item布局中的点击事件(四)
- ListView Item侧滑菜单
- android之listview的item不可点击
- android之listview的item不可点击
- Android 之自定义 item 的 ListView
- github项目之左右滑动的ListView
- github上的项目导入Android studio出错(整理)
- Android--listview的item侧滑的实现
- github上优秀的项目(转载)
- 搭建Android项目:AS+GitHub+aar+maven(GitHub上的)
- 经验总结-完整介绍Android Studio中Git的使用之Android Studio上传项目至GitHub(三)
- ListView之分割不同的项目布局(item layout)
- Android 取得 ListView中每一个Item项目的值
- CBPeripheralManager学习笔记
- linux中从一台机器复制文件或目录到另一台机器上linux机器上
- MyBatis 入门到精通(一) 了解MyBatis获取SqlSession
- 初始JavaScript中的模块
- [刷题]Merge Sorted Array
- Github上的Android项目介绍之ListViewAnimation(针对listView item的侧滑菜单)(1)
- 16-Bug解决之道
- [LeetCode]Rising Temperature,解题报告
- IOS CGAffineTransform视图平移,放缩,旋转
- hdu 4284 floyed+状态压缩dp
- Python 学习笔记之读写模式
- 第六周项目1(1)-深复制体验
- 欢迎使用CSDN-markdown编辑器
- Cast from pointer to smaller type 'int' loses