Android 自定义ListView和GridView,手机软件开发app

本文介绍了如何在Android中自定义ListView和GridView,包括创建可拖动的GridView。提供了详细的代码示例,展示了如何实现拖动功能,以及在拖动过程中实现item的交换和隐藏效果。此外,还包含了Android开发的相关面试知识点和资源分享。
摘要由CSDN通过智能技术生成

lastUpdatedTextView.setText(“最近更新:” + new Date().toLocaleString());

super.setAdapter(adapter);

}

}

代码下载

2.自定义可拖动的GridView

效果预览:

代码

MainActivity:

package com.example.draggridview;

import java.util.ArrayList;

import java.util.Collections;

import java.util.HashMap;

import java.util.List;

import java.util.Random;

import com.example.framework.DragGridBaseAdapter;

import com.example.framework.DragGridView;

import android.app.Activity;

import android.content.Context;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.ViewGroup;

import android.view.WindowManager;

import android.widget.BaseAdapter;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends Activity {

private List<HashMap<String, Object>> dataSourceList = new ArrayList<HashMap<String, Object>>();

private DragGridView mDragGridView = null;

private Button btnRefresh;

private Button btnFull;

private Button btnFullCancel;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

TextView tvNum = (TextView) findViewById(R.id.tvNum);

btnRefresh = (Button) findViewById(R.id.btnRefresh);

btnFull = (Button) findViewById(R.id.btnFull);

btnFullCancel = (Button) findViewById(R.id.btnFullCancel);

mDragGridView = (DragGridView) findViewById(R.id.dragGridView);

int red = 0;

int blue = 0;

dataSourceList.clear();

for (int i = 1; i < 97; i++) {

HashMap<String, Object> itemHashMap = new HashMap<String, Object>();

itemHashMap.put(“item_text”, “Icon” + Integer.toString(i));

int randomNUm = new Random().nextInt(2);

if (randomNUm % 2 == 0) {

itemHashMap.put(“item_icon”, R.drawable.check);

blue++;

} else {

itemHashMap.put(“item_icon”, R.drawable.star);

red++;

}

dataSourceList.add(itemHashMap);

}

mDragGridView.setAdapter(new DragAdapter(this, dataSourceList));

tvNum.setText(“Red:” + red + " Blue" + blue);

btnRefresh.setOnClickListener(new onClickListenerImp());

btnFull.setOnClickListener(new onClickListenerImp());

btnFullCancel.setOnClickListener(new onClickListenerImp());

}

// OnClickListener

class onClickListenerImp implements OnClickListener {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

if (v == btnRefresh) {

mDragGridView = (DragGridView) findViewById(R.id.dragGridView);

onCreate(null);

} else if (v == btnFull) {

getWindow().setFlags(

WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

btnFullCancel.setVisibility(View.VISIBLE);

btnFull.setVisibility(View.GONE);

} else if (v == btnFullCancel) {

//isFull = getWindow().getAttributes().flags;

getWindow().clearFlags(

WindowManager.LayoutParams.FLAG_FULLSCREEN);

btnFullCancel.setVisibility(View.GONE);

btnFull.setVisibility(View.VISIBLE);

}

}

}

// Adapter

class DragAdapter extends BaseAdapter implements DragGridBaseAdapter {

private List<HashMap<String, Object>> list;

private LayoutInflater mInflater;

private int mHidePosition = -1;

public DragAdapter(Context context, List<HashMap<String, Object>> list) {

this.list = list;

mInflater = LayoutInflater.from(context);

}

@Override

public int getCount() {

return list.size();

}

@Override

public Object getItem(int position) {

return list.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

convertView = mInflater.inflate(R.layout.grid_item, null);

ImageView mImageView = (ImageView) convertView

.findViewById(R.id.item_icon);

TextView mTextView = (TextView) convertView

.findViewById(R.id.item_text);

mImageView.setImageResource((Integer) list.get(position).get(

“item_icon”));

mTextView.setText((CharSequence) list.get(position)

.get(“item_text”));

if (position == mHidePosition) {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值