android github listview,Github上的Android项目介绍之ListViewAnimation(针对listView item的侧滑菜单)(1)...

0818b9ca8b590ca3270a3433284dd417.png

demo源码,需要可以下载

1.这是一个github开源项目,先去github上面下载,github下载地址。

2.将SwipeMenuListView项目,导入,然后新建项目如果要引用,要设置为相应的lid应用,如图勾选。

0818b9ca8b590ca3270a3433284dd417.png

3.activity_main.xml 的布局文件代码:

android:id="@+id/listView"

android:layout_width="match_parent"

android:layout_height="match_parent" />

主要是加入这个控件。

4.item_list_app.xml布局文件,代码如下:

5.加入ic_delete.png图片。

6.定义扩展自BaseAdapter的adapter,用来提供列表数据。

同时重写swipeMenu的回调方法,主要是实现SwipeMenuCreator 这个类的create()方法,和相应的OnMenuItemClickListener接口。至于数据来源则是List类型的,是由 getPackageManager().getInstalledApplications(0); 方法获得。

如果要重用这个代码,需要实现SwipeMenuCreator 类和相应的OnMenuItemClickListener接口。

主要代码如下:

public class MainActivity extends Activity {

private List 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());

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值