国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android自定義日歷Calender代碼實現

2019-12-12 05:19:00
字體:
來源:轉載
供稿:網友

產品要做簽到功能,簽到功能要基于一個日歷來進行,所以就根據 要求自定義了一個日歷

自定義控件相信做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了。 

Demo:http://xiazai.VeVB.COm/201609/yuanma/AndroidCalenderDemo(VeVB.COm).rar

自定義了一個日歷以后就要做簽到了,簽到只要在自定義的Calendar中稍稍修改下就好了,看下效果圖: 

看這還行,然后DEMO:http://xiazai.VeVB.COm/201609/yuanma/AndroidCalender(VeVB.COm).rar

添加了幾個方法的Demo:http://xiazai.VeVB.COm/201609/yuanma/Calenderchange(VeVB.COm).rar

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 板桥市| 连江县| 金乡县| 琼中| 离岛区| 乌审旗| 如东县| 西昌市| 略阳县| 常熟市| 长垣县| 陈巴尔虎旗| 中卫市| 湘潭市| 辰溪县| 彩票| 南华县| 丹巴县| 桂林市| 贵溪市| 连南| 衢州市| 昆明市| 玛曲县| 靖江市| 博爱县| 青海省| 宁安市| 余姚市| 长治市| 仙游县| 灵武市| 噶尔县| 北碚区| 方城县| 革吉县| 四川省| 松溪县| 利辛县| 资中县| 镇江市|