自定义日历控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代码实现相关推荐
- WPF Calendar 日历控件 样式自定义
原文:WPF Calendar 日历控件 样式自定义 粗略的在代码上做了些注释 blend 生成出来的模版 有的时候 会生成 跟 vs ui界面不兼容的代码 会导致可视化设计界面 报错崩溃掉 但是确不 ...
- 【无私分享】干货!!!一个炫酷的自定义日历控件,摆脱日历时间选择烦恼,纯福利~...
最近公司项目中有一个按日期查看信息的功能,楼主本想用之前用的wheelView将就使用的,不过产品经理有个新要求,就是点击按钮弹出的日期选择对话框必须显示农历节假日,周几什么的.这可就难为人了,倘若使 ...
- java自定义日历控件_【无私分享】修订版干货!!!一个炫酷的自定义日历控件,摆脱日历时间选择烦恼,纯福利~...
可能不少的小伙伴都有看楼主昨天发的自定义日历控件,虽然实现功能不多,但也还算将就吧. 但是看了的小伙伴就很心急了,说楼主上传到gitHub的东西有问题,楼主下载来看了看,基本都没问题吧,没弄好的小伙伴 ...
- 【无私分享】修订版干货!!!一个炫酷的自定义日历控件,摆脱日历时间选择烦恼,纯福利~...
可能不少的小伙伴都有看楼主昨天发的自定义日历控件,虽然实现功能不多,但也还算将就吧. 没有看的小伙伴如果有兴趣的话可以去看看:http://www.cnblogs.com/liushilin/p/57 ...
- android 自定义switch控件,Android中switch自定义样式
android 原生开关按钮控件 Switch 提供样式自定义方式,可供我们修改为适合我们开发使用的样式控件,自定义样式过程如下: 自定义switch切换drawable 新建swith_thumb. ...
- 自定义View控件(2—手写实例代码)
1. 步骤: + 1.自定义一个类继承于UIView + 2.在initWithFrame方法中添加子控件 + 3.在layoutSubviews中设置子控件的位置 + 4.提供一个属性保存外界传入的 ...
- android自定义选年控件,Android精美日历控件CalendarView自定义使用完全解析
项目github地址 此框架采用组合的方式,各个模块互相独立,可自由采用各种提供的控件组合,完全自定义自己需要的UI,周视图和月视图可通过简单自定义任意自由绘制,不怕美工提需求!!!下面教程将介绍如何 ...
- android 自定义view控件,Android 自定义View——自定义View控件
Android给我们提供了大量的View控件,但这还是远远满足不了我们的要求,有时候开发所需要的控件形式是在Android提供的控件中是不存在,这就需要我们自己去定义一个.那么如何自定义控件? 学习自 ...
- android 自定义刷新控件,Android开发中MJRefresh自定义刷新动画效果
有时候我们对自己开发的项目经常不满意,但是我们要达到自定义刷新动画的效果有一定的难度,别着急,下面爱站技术频道和大家分享Android开发中MJRefresh自定义刷新动画效果,一起来学习吧! [一] ...
- Android 自定义titlebar控件(自定义UI控件)
1.创建自定义的属性: 2.在自定义的布局中获取属性: 3.在mainActivity中使用 自定义控件,并使用自定义属性赋值. 1.创建自定义的属性创建 values/attr.xml 文件: &l ...
最新文章
- 《软件工艺师:专业、务实、自豪》一3.7.2 软件工艺概念走向全球
- BI Content、Metadata Repository
- vulcanjs 核心架构概念
- ElasticSearch 实践过程中遇到的几个小问题
- DOM(document object model),文档对象模型
- php是静态语言,Thinkphp静态缓存多语言切换
- 网络虚拟化基础一:linux名称空间Namespaces
- android 血压计开发,智能血压计方案开发
- 使用C#读取XML节点,修改XML节点
- linux用户管理相关
- ic卡信息保存在服务器,智能IC卡网络数据安全保密系统
- 虚拟化介绍及Docker与传统虚拟化有什么区别
- Matlab——m_map指南(3)——实例
- UVA 1001 Say Cheese(最短路)
- 第二届阿里巴巴大数据智能云上编程大赛亚军比赛攻略
- 从被遗忘到牛市龙头,一文梳理ETH 2020爆发逻辑
- 【化解数据结构】详解字典结构,并实现一个字典
- ios 7 Launch Images改变屏幕尺寸
- 玩《节奏大师》——换你所爱的歌曲
- Excel通过宏 实现数据的填充和表格的复制