android自定义日历代码,Android自定义日历Calender代码实现
产品要做签到功能,签到功能要基于一个日历来进行,所以就根据 要求自定义了一个日历
自定义控件相信做android都知道:
(1)首先创建一个类,继承一个容器类或者是一个控件
(2)然后就是你需要设置的属性等的,在attrs文件夹中
(3)然后就是在类里边进行属性的设置以及布局等等功能的添加
其实自定义一个日历问题都不多,很多人都会想到通过一个gridView然后填充就可以,确实是这样,主要是在显示每个月的第一天的位置以及每个月显示多少天有点绕。
思路:通过判断当前星期几然后进行日历的填充,但是填充的大小不能大于当月天数,通过当月第一天是星期几来判断从哪个位置填充。
代码:
package com.example.calenderdemo;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class CalendarViewAdapter extends BaseAdapter {
private Context mContext;
private int mCountDay = 49;
private int mCurrent_mouth_Countday;
private int mCurrent_Week;
private int id[] = { R.string.week7, R.string.week1, R.string.week2,
R.string.week3, R.string.week4, R.string.week5, R.string.week6 };
public CalendarViewAdapter(Context context, int countday) {
this.mContext = context;
this.mCurrent_Week = Utils.getCurrentMonthStart();
this.mCurrent_mouth_Countday = countday;
}
@Override
public int getCount() {
return mCountDay;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = LayoutInflater.from(mContext).inflate(
R.layout.item_calendar, null);
holder.mTv_calendar_day = (TextView) convertView
.findViewById(R.id.tv_calendar_day);
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
if (position <= 6) {
holder.mTv_calendar_day.setTextColor(Color.BLACK);
holder.mTv_calendar_day.setTextSize(mContext.getResources()
.getDimension(R.dimen.text_size_7));
holder.mTv_calendar_day.setText(mContext.getResources().getString(
id[position]));
} else {
if (mCurrent_Week == 7 && (position -6) <= mCurrent_mouth_Countday) {
holder.mTv_calendar_day.setText(position-6 + "");
} else if (position -7>= mCurrent_Week
&& position - mCurrent_Week -6 <= mCurrent_mouth_Countday) {
holder.mTv_calendar_day.setText(position - mCurrent_Week -6
+ "");
}
}
if (position % 7 == 6) {
holder.mTv_calendar_day.setBackgroundResource(R.drawable.line_right);
}else if (position % 7 == 0) {
holder.mTv_calendar_day.setBackgroundResource(R.drawable.line_left);
}
return convertView;
}
class ViewHolder {
TextView mTv_calendar_day;
}
}
把gridView填充了以后一个简单的日历控件就ok了。
自定义了一个日历以后就要做签到了,签到只要在自定义的Calendar中稍稍修改下就好了,看下效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
android自定义日历代码,Android自定义日历Calender代码实现相关推荐
- 自定义日历控android,Android自定义日历Calender代码实现
产品要做签到功能,签到功能要基于一个日历来进行,所以就根据 要求自定义了一个日历 自定义控件相信做android都知道: (1)首先创建一个类,继承一个容器类或者是一个控件 (2)然后就是你需要设置的 ...
- android日历编程,Android自定义日历Calender代码实现
产品要做签到功能,签到功能要基于一个日历来进行,所以就根据 要求自定义了一个日历 自定义控件相信做android都知道: (1)首先创建一个类,继承一个容器类或者是一个控件 (2)然后就是你需要设置的 ...
- android程序日历layout,Android使用GridLayout绘制自定义日历控件
效果图 思路:就是先设置Gridlayout的行列数,然后往里面放置一定数目的自定义日历按钮控件,最后实现日历逻辑就可以了. 步骤: 第一步:自定义日历控件(初步) 第二步:实现自定义单个日期按钮控件 ...
- android 日历图,Android中的自定义日历视图
我正在为我的 Android应用程序构建一个自定义日历视图,允许您在几个月之间滑动.我已经创建了自定义日历方块视图,我已将其嵌入到自定义日历月视图中,并且所有内容都在1个月的范围内完美运行. 不幸的是 ...
- android 自定义日历 数据,Android实现自定义日历.pdf
Android实实现现自自定定义义日日历历 自定义日历类源码,可以自己在里面按照需求增减功能,做成自己想要的日历效果,小伙伴们可以根据自己的需求自 由 改 自定义日历控件,支持旧历.节气.日期标注.点 ...
- 自定义日历控android,Android 一个日历控件的实现小记
先看几张动态的效果图吧! 这里主要记录一下在编写日历控件过程中一些主要的点: 一.主要功能 1.支持农历.节气.常用节假日 2.日期范围设置,默认支持的最大日期范围[1900.1~2049.12] 3 ...
- android 日历 标记,Android自定义可标记日历
1.前几天某某人要求我记住她什么时候洗的头发,然后记得提醒她,这么复杂的事情,我只好想着做个什么东西帮我,然后就这样了 2.先直接看看效果吧 初始情况 点击一个作为标记 再次点击后删除 3.这里还要感 ...
- android小球移动代码,Android自定义圆形View实现小球跟随手指移动效果
本文实例为大家分享了Android实现小球跟随手指移动效果的具体代码,供大家参考,具体内容如下 一. 需求功能 手指在屏幕上滑动,红色的小球始终跟随手指移动. 实现的思路: 1)自定义View,在on ...
- Android自定义Adapter的ListView的思路及代码
Android自定义Adapter的ListView的思路及代码,需要的朋友可以参考一下 width="650" height="200" align=&quo ...
- 日历控件的android代码,Android日历控件PickTime代码实例
Android日历控件PickTime代码实例 发布时间:2020-10-03 16:05:51 来源:脚本之家 阅读:86 作者:手撕高达的村长 最近做项目,需要设置用户的生日,所以做这样一个功能. ...
最新文章
- C++ 通过模版工厂实现 简单反射机制
- 【Qt】qt打印文件名、函数名、行号
- Python 学习散记
- powerpoint文字教程
- Mybatis 向指定表中批量插入数据
- c语言张振国实验报告,基于VisualC的黄金分割法程序设计实验报告.doc
- 如何让 Mac 加入网络帐户服务器?
- JDK与API下载与使用
- 运营商iptv服务器,IPTV 服务器
- 工程机械行业PLM实施背景
- 《团队-科学计算器-项目总结》
- 超好用的内网穿透工具【永久免费不限制流量】
- re匹配电话号码、邮箱地址
- rl滤波器原理_入门篇,层层讲解滤波电路工作原理
- java数字签名(签名生成,用证书验证签名)
- 【数据结构】- 几个步骤教你认识并实现一个链表之带头(哨兵位)双向循环链表(中)
- 英语语法---四种句子类型的介绍
- vue中使用i18n
- linux查看tomcat在,在陌生Linux环境查看Tomcat服务的方法
- FMDB的简单应用(4篇)
热门文章
- html 倒计时弹出框,alert警告框倒计时
- Carhart四因子模型实用攻略
- 设计模式(三)之生成器模式(Builder Pattern)
- 数据结构:树(Tree)【详解】
- 粒子群优化算法(PSO)及其Matlab实现
- 微型计算机控制技术应用,微型计算机控制技术的发展及应用123.doc
- BP神经网络公式推导
- 用计算机制作flash动画教案,最新最完整Flash动画制作教案.doc
- linux镜像添加驱动,添加raid驱动到initrd.img
- 6款 jQuery Lightbox图片查看触控插件