此案例主要讲的是Android控件Gridview(九宫格)完美实现仿支付宝首页,包含添加和删除功能;Fragment底部按钮切换的效果,包含四个模块,登录页面圆形头像等,一个小项目的初始布局。

效果图:

代码:

自定义GridView

<menu.menudemo.ui.view.ZQScrollGridView
android:id="@+id/home_gridview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#E4E4E4"
android:cacheColorHint="#00000000"
android:fadingEdge="none"
android:horizontalSpacing="1dp"
android:listSelector="#00000000"
android:numColumns="3"
android:scrollbars="none"
android:verticalSpacing="1dp"
></menu.menudemo.ui.view.ZQScrollGridView>

首页代码

/**
* 首页
*/
public class HomeFragment extends Fragment implements View.OnClickListener { private View view;
private TextView tv_sign;
private Intent intent;
private ZQScrollGridView gridView; private static HomeAdapter adapter;
public static List<Integer> listPosition;
public static List<UserBean> list;
private static ACache aCache; private Context context; @Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_home, container, false);
} @Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
view = getView();
aCache = ACache.get(getActivity());
context = getActivity();
initView();
} public void initView() {
tv_sign = (TextView) view.findViewById(R.id.home_sign);
tv_sign.setOnClickListener(this);
gridView = (ZQScrollGridView) view.findViewById(R.id.home_gridview);
onLoad();
} public void onLoad() {
adapter = new HomeAdapter(getActivity());
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(onItemClickListener);
gridView.setOnItemLongClickListener(onItemLongClickListener);
showData();
} /*****
* 刷新数据
*/
private void notifyData() {
adapter.notifyDataSetChanged();
} @Override
public void onClick(View v) {
switch (v.getId()) { }
} public Handler handler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == 1) {
showLongClick(false);
} else if (msg.what == 2)//删除
{
showDelete();
}
}
}; AdapterView.OnItemClickListener onItemClickListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position == (listPosition.size() - 1)) {
intent = new Intent(getActivity(), SearchActivity.class);
intent.putExtra("list", (Serializable) listPosition);
startActivityForResult(intent, 1);
}
else { } }
};
AdapterView.OnItemLongClickListener onItemLongClickListener = new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { if (position == (listPosition.size() - 1)) {
return false;
}
showLongClick(true);
Message msg = new Message();
msg.what = 1;// 删除
msg.obj = 1;
LoginFragmentActivity.handler.sendMessage(msg);
return false;
}
}; @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if (resultCode == 1) {
if (data.getStringExtra("key").equals("2")) {
listPosition.clear();
listPosition = HomeData.POSITION(aCache);
notifyData();
}
}
}
} private void showData() {
listPosition = HomeData.POSITION(aCache);
list = new ArrayList<UserBean>();
for (int i = 0; i < 34; i++) {
UserBean user = new UserBean(HomeData.IMG[i], HomeData.TITLE[i], false, false);
list.add(user);
}
notifyData();
} /***
* 删除
*/
private void showDelete() {
//删除缓存
String home = "";
for (int i = 0; i < listPosition.size() - 1; i++) {
UserBean userBean = list.get(listPosition.get(i));
if (!userBean.isCheck()) {
home += listPosition.get(i) + ",";
}
}
aCache.remove("home");
listPosition.clear();
try {
UtilFileDB.ADDFile(aCache, "home", home.substring(0, (home.length() - 1)));
if (listPosition == null || listPosition.size() <= 1) {
listPosition = HomeData.POSITION(aCache);
}
} catch (Exception e) {
listPosition.add((list.size()-1));//只留加号
}
showLongClick(false);
} /****
* 重新刷新数据
*
* @param isvisibility
*/
private void showLongClick(boolean isvisibility) {
list.clear();
for (int i = 0; i < 34; i++) {
UserBean user = new UserBean(HomeData.IMG[i], HomeData.TITLE[i], false, isvisibility);
list.add(user);
}
HomeFragment.list.get(33).setIsvisibility(false);
notifyData();
}
}

由于代码太多未完全给出,源码直接下载即可(点击下载)

源码点击下载:https://github.com/DickyQie/android-small-project

Android控件Gridview实现仿支付宝首页,Fragment底部按钮切换和登录圆形头像的更多相关文章

  1. Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现

    Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现 2015-03-10 22:38 28419人阅读 评论(17) 收藏 举报  分类: Android ...

  2. Android控件Gridview实现多个menu模块,可添加可删除

    此案例主要讲的是Android控件Gridview(九宫格)完美实现仿支付宝首页,包含添加和删除功能:Fragment底部按钮切换的效果,包含四个模块,登录页面圆形头像等,一个小项目的初始布局. 效果 ...

  3. Android控件-ViewPager(仿微信引导界面)

    什么是ViewPager? ViewPager是安卓3.0之后提供的新特性,继承自ViewGroup,专门用以实现左右滑动切换View的效果. 如果想向下兼容就必须要android-support-v ...

  4. android控件库(2)-仿Google Camera 的对焦效果

    一直很喜欢Google Camera的自动对焦效果,今日闲来无事,自己做了个: 废话不多说,代码才是王道: package com.example.test.view; import com.exam ...

  5. Android 控件进阶修炼-仿360手机卫士波浪球进度控件

    技术:Android+java   概述 像360卫士的波浪球进度的效果,一般最常用的方法就是 画线的方式,先绘sin线或贝塞尔曲线,然后从左到右绘制竖线,然后再裁剪圆区域. 今天我这用图片bitma ...

  6. Android控件之ImageSwticher

    Android控件之ImageSwticher 1. ImageSwticher介绍 ImageSwitcher是图片切换的控件,它能实现图片切换时的动画效果,包括图片导入效果.图片消失效果等等.An ...

  7. iOS仿支付宝首页效果

    代码地址如下:http://www.demodashi.com/demo/12776.html 首先看一下效果 状态栏红色是因为使用手机录屏的原因. 1.问题分析 1.导航栏A有两组控件,随着tabl ...

  8. iOS仿支付宝首页的刷新布局效果

    代码地址如下:http://www.demodashi.com/demo/12753.html XYAlipayRefreshDemo 运行效果 动画效果分析 1.UI需要变动,向上滑动的时候,顶部部 ...

  9. Android控件介绍

    1. 介绍 Android控件大多位于android.widget, android.view.View为他们的父类对于Dialog系列, android.app.Dialog为父类 Android的 ...

随机推荐

  1. android studio新建hello world时出现Rendering Problems

    The following classes could not be instantiated:        - android.support.v7.internal.widget.ActionB ...

  2. oracle 分析函数

    认识分析函数 分析函数是什么? 分析函数是oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值. 分析函数 ...

  3. .net工作准备系列--01前言

    注:学习参考朱毅编著的进入IT名企必读200题. 内容重在自我学习与巩固. 前言: 章节划分 01应聘须知 02基础知识(重点) 03进阶知识 04重点应用(aspnet第一部分) 04重点应用(as ...

  4. 新手上路,配置阿里云CentOS服务器LAMP

    最近出了个9.9包月的阿里云一直想弄就买了个半年的,脑子一热选了个CentOS系统的然后就是无尽的代码...... 话不多说直接上步骤:  在实例中选择"连接管理终端",输入一些应 ...

  5. Unity3D 学习——入门资料整理

    感觉可以写3D游戏,还是用C#,很好玩的样子.整理最近学习资料 介绍:游戏引擎,可以用C#配置的游戏引擎.嗯,就这样.其余度娘. 安装:官网,因为现在个人版是免费的.直接官网下.干净利落. 调试插件: ...

  6. matlab clear

    clear 删除工作空间中的项目,释放系统内存 语法: clear clear name clear name1 name2 name3... clear global name clear -reg ...

  7. vs2012安装Microsoft.AspNet.WebApi.WebHost

    工具---库程序包管理器---程序包管理器控制台:输入下面命令:  Install-Package Microsoft.AspNet.WebApi.WebHost 

  8. ArrayList的使用方法(转载)

    转载自: http://i.yesky.com/bbs/jsp/view.jsp?articleID=889992&forumID=150 1.什么是ArrayList    ArrayLis ...

  9. Foundation框架—数据类(NSData)

    一 NSData的使用 .string -> data     NSString *str = @"changxiangweilai";     NSData *data = ...

  10. closest应用(向上查找最近的资料)

    //新增网址信息function AddSitInfo(a) {    var obj = $(a).closest("td[name='POIRestaurant_Reference_UR ...