当前位置: 首页 > news >正文

泰安网站开发推广英讯网站建设

泰安网站开发推广,英讯网站建设,滁州网站建设czesou,江门市建设工程安全监督网站Android 第三方库CalendarView 根据需求和库的使用方式,自己弄了一个合适自己的日历,仅记录下,方便下次弄其他样式的日历。地址 需求: 只显示当月的数据 默认的月视图有矩形的线 选中的天数也要有选中的矩形框 今天的item需要…

Android 第三方库CalendarView

根据需求和库的使用方式,自己弄了一个合适自己的日历,仅记录下,方便下次弄其他样式的日历。地址

需求:

  1. 只显示当月的数据

  2. 默认的月视图有矩形的线

  3. 选中的天数也要有选中的矩形框

  4. 今天的item需要显示“今”

  5. 部分有记录的要显示图片

1.布局代码

<com.haibin.calendarview.CalendarViewandroid:id="@+id/calendarView"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#fff"app:calendar_height="46dp"app:calendar_padding="10dp"app:current_month_lunar_text_color="#CFCFCF"app:current_month_text_color="#333333"app:min_year="2004"app:month_view="com.haibin.calendarviewproject.zhengq.SimpleMonthView"app:month_view_show_mode="mode_only_current"app:other_month_text_color="#e1e1e1"app:scheme_text="假"app:scheme_text_color="#333"app:scheme_theme_color="#333"app:selected_text_color="#333"app:selected_theme_color="#333"app:week_background="#fff"app:week_text_color="#111"app:week_view="com.haibin.calendarviewproject.zhengq.SimpleWeekView"app:year_view_day_text_color="#333333"app:year_view_day_text_size="9sp"app:year_view_month_text_color="#ff0000"app:year_view_month_text_size="20sp"app:year_view_scheme_color="#f17706" />

month_view_show_mode属性可以设置 只显示当月数据

calendar_height属性可以设置 月item的高度

2.默认的矩形框

@Override
protected void onDrawText(Canvas canvas, Calendar calendar, int x, int y, boolean hasScheme, boolean isSelected) {//这里绘制文本,不要再问我怎么隐藏农历了,不要再问我怎么把某个日期换成特殊字符串了,要怎么显示你就在这里怎么画,你不画就不显示,是看你想怎么显示日历的,而不是看框架canvas.drawRect(x, y, x + mItemWidth, y + mItemHeight, mRectPaint);...
}

3.选中的矩形框

@Overrideprotected boolean onDrawSelected(Canvas canvas, Calendar calendar, int x, int y, boolean hasScheme) {//这里绘制选中的日子样式,看需求需不需要继续调用onDrawScheme//绘制选中的日期矩形mSelectedPaint.setColor(getContext().getResources().getColor(R.color.solar_background));mSelectedPaint.setStyle(Paint.Style.STROKE);canvas.drawRect(x, y, x + mItemWidth, y + mItemHeight, mSelectedPaint);
​return true;//如果这里是false选中一个带Scheme的item,不显示Scheme,设置true就会显示}

4.scheme

/*** 绘制标记的事件日子** @param canvas   canvas* @param calendar 日历calendar* @param x        日历Card x起点坐标* @param y        日历Card y起点坐标*/
@Override
protected void onDrawScheme(Canvas canvas, Calendar calendar, int x, int y) {//这里绘制标记的日期样式,想怎么操作就怎么操作
​//绘制到日期数字的左边canvas.drawText(calendar.getScheme(), x + mPadding, y + mItemHeight / 2 + mPadding, mTextPaint);
​//绘制一张图片Drawable drawable = getContext().getResources().getDrawable(R.mipmap.record_gong_l);//第一层第一个canvas.drawBitmap(BitmapUtils.drawable2Bitmap(drawable), x + mPadding, y + mPadding, mTextPaint);//第一层第二个canvas.drawBitmap(BitmapUtils.drawable2Bitmap(drawable), x + mItemWidth / 2 - drawable.getIntrinsicWidth() / 2, y + mPadding, mTextPaint);//第一层第三个canvas.drawBitmap(BitmapUtils.drawable2Bitmap(drawable), x + mItemWidth - drawable.getIntrinsicWidth() - mPadding, y + mPadding, mTextPaint);
​//第二层第三个canvas.drawBitmap(BitmapUtils.drawable2Bitmap(drawable), x + mItemWidth - drawable.getIntrinsicWidth() - mPadding,y + mItemHeight / 2 - drawable.getIntrinsicHeight() / 2, mTextPaint);
​//第三层第一个canvas.drawBitmap(BitmapUtils.drawable2Bitmap(drawable), x + mPadding,y - mPadding + mItemHeight - drawable.getIntrinsicHeight(), mTextPaint);//第三层第二个canvas.drawBitmap(BitmapUtils.drawable2Bitmap(drawable), x + mItemWidth / 2 - drawable.getIntrinsicWidth() / 2,y - mPadding + mItemHeight - drawable.getIntrinsicHeight(), mTextPaint);//第三层第三个canvas.drawBitmap(BitmapUtils.drawable2Bitmap(drawable), x + mItemWidth - drawable.getIntrinsicWidth() - mPadding,y - mPadding + mItemHeight - drawable.getIntrinsicHeight(), mTextPaint);
}

5.完成

6.注意

1.Paint颜色设置

    public SimpleMonthView(Context context) {super(context);mRectPaint.setStyle(Paint.Style.STROKE);mRectPaint.setStrokeWidth(dipToPx(context, 0.5f));mRectPaint.setColor(0x88efefef);//这里的演示不能设置透明度为1的颜色,会覆盖选中的颜色
​mPadding = dipToPx(getContext(), 4);mTextPaint.setTextSize(dipToPx(context, 8));mTextPaint.setTextSize(dipToPx(context, 10));mTextPaint.setColor(getContext().getResources().getColor(R.color.solar_background));//黑色mTextPaint.setAntiAlias(true);mTextPaint.setFakeBoldText(true);}

2.SimpleWeekView和SimpleMonthView要一样的

3.onDrawSelected中的return true;,否则不会显示scheme

4.不足之处:日历旁边会显示白色的边框

http://www.yayakq.cn/news/221161/

相关文章:

  • 宁波网站免费建设服务平台5118网站
  • 建网站需要什么步骤广府网站建设
  • 网站开发技术简介dw自己电脑做服务器搭建网站有域名
  • dede模板蓝色大气简洁企业网站模板下载公司的管理方式与管理方法
  • 合肥做网站开发多少钱中企动力是什么公司
  • 保定市网站制作公司学校网站建设合同
  • 技术支持 合肥网站建设常用的系统开发方法有哪些
  • 网站模板 手机漳州开发区人事人才网
  • 网站建设论文选题表直播开放平台
  • 自己的网站怎么做搜索引擎网站管理助手4.1
  • 做网站和做网页一样吗企业网站 设
  • 做网站起什么名字比较好建阳建盏大师排名表
  • 关于加强内网网站建设的通知制作网页的软件免费
  • 建网站视频邢台做网站公司
  • 免费的旅游网站模板网站的控制面板
  • 做网站属软件什么专业传奇网
  • 二手商品网站制作济宁建设网站首页
  • 网站建设内容规划html制作企业宣传网站
  • 南宁网站建设优势在阿里怎样做单页销售网站
  • 学asp.net 做网站 书籍网站百度百科怎么做
  • wordpress建影视网站想给公司做个网站
  • 网站建设毅文科技宿迁房价下跌最惨小区
  • 西安网站建设制作网址之家大全
  • aspcms网站图片不显示网站开发设计南邮
  • 温州微网站制作公司推荐重庆微信开发网站建设
  • 非营利组织网站建设会计分录医院网上预约
  • 绍兴企业网站推广自己如何免费做网站
  • 电子政务网站代码网络舆情监测 toom
  • 联合创始人网站怎么做优秀网站参考
  • 阿里巴巴网站费用怎么做分录phpcms旅游网站模板