zoukankan      html  css  js  c++  java
  • 【GitHub-SwipeMenuListView】针对ListView item的側滑菜单

    项目地址:https://github.com/baoyongzhang/SwipeMenuListView



    Usage

    Step 1:import swipemenulistview.jar

    Step 2:add activity_main.xml in layout 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="match_parent" 
        tools:context="${relativePackage}.${activityClass}">
    
        <com.baoyz.swipemenulistview.SwipeMenuListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
    </RelativeLayout>
    
    Step 3:add item_list_app.xml in layout 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>
    Step 4:add ic_delete.png in drawble-hdpi

    Step 5:add the following code in MainActivity.java

    package com.example.swipemenulistviewdemo;
    
    import java.util.List;
    
    import com.baoyz.swipemenulistview.SwipeMenu;
    import com.baoyz.swipemenulistview.SwipeMenuCreator;
    import com.baoyz.swipemenulistview.SwipeMenuItem;
    import com.baoyz.swipemenulistview.SwipeMenuListView;
    import com.baoyz.swipemenulistview.SwipeMenuListView.OnMenuItemClickListener;
    import android.app.Activity;
    import android.content.pm.ApplicationInfo;
    import android.graphics.Color;
    import android.graphics.drawable.ColorDrawable;
    import android.os.Bundle;
    import android.util.TypedValue;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    
    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());
    	}
    }
    



  • 相关阅读:
    InfoQ访谈BPEL4People代表
    传 IBM 拟 4 月 6 日宣布收购 Sun
    NetBeans 6.7 Milestone 3 Now Available for Download!
    Intel比AMD高明在哪里?
    InfoQ访谈BPEL4People代表
    Linux 3.8.1 电源管理之OMAP Voltage Domain分析
    Readline简介 Linux技术问答 Linux中国 | Linux.cn 我们的Linux中文社区
    更改日期
    JAVA研发工程师(YF)
    一键解决Ubuntu下安装Eclipse Android/C/C++ 开发环境
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5263572.html
Copyright © 2011-2022 走看看