摘要: 概述 Android IndicatorView的灵感来源于SlidingTabView,虽然有句“不重复”造轮子在先,本着练手的目的,还是写了一个功能较为简单的类似view。 其比SlidingTabView在功能上欠缺的一点是:暂时没有添加“当内容显示不开时自动向左右滑动”的功能。 应用场景 可 阅读全文
posted @ 2016-06-22 16:55 carbs 阅读(2953) 评论(0) 推荐(0) 编辑
摘要: 版权声明:本文为博主原创文章,转载请注明出处。 控件简介 UISegmentControl在IOS平台的App中非常常见,其控件如下图所示: 这种控件的主要作用是动态的更改界面的显示内容,一般应用于内容较多的界面,且分屏显示不同种类的内容。 在Android开发过程中,有时需要实现类似UISegme 阅读全文
posted @ 2016-05-23 15:19 carbs 阅读(1688) 评论(0) 推荐(0) 编辑
摘要: 代码地址:https://github.com/Carbs0126/MaxHeightView android中部分控件具有maxHeight功能,如button等,但是对于ViewGroup类的控件,没有此属性,当我们需要限制某些view的高度时,(比如限制屏幕下方对话框的最大高度)那么,就需要一 阅读全文
posted @ 2016-01-19 17:07 carbs 阅读(24279) 评论(0) 推荐(0) 编辑
摘要: 代码下载地址: https://github.com/Carbs0126/AutoZoomInImageView 知乎等app的开场动画为:一张图片被显示到屏幕的正中央,并充满整个屏幕,过一小段时间后,开始慢慢方法,且图片的正中央始终处于屏幕的正中央,也就是“镜头缓慢放大”的效果 难点1.andro 阅读全文
posted @ 2016-01-18 14:58 carbs 阅读(4696) 评论(3) 推荐(0) 编辑
摘要: 项目地址: https://github.com/Carbs0126/AvatarImageView 前言: 在做电话本或者其他应用时,显示联系人头像的策略一般是这样的:先判断是否有头像图片,如果有,则直接显示图片;如果没有,则显示联系人的名字的第一个字,将这个文字作为头像,并添加背景颜色。 截图: 阅读全文
posted @ 2016-05-30 17:15 carbs 阅读(2682) 评论(0) 推荐(0) 编辑
摘要: 随着google开始主导Material Design风格的设计,越来越多的app开始使用Material Design风格来设计自己的UI。虽然在Android Studio中集成了多种快速开发框架,但是google始终没有推出自己的MD风格的dialog,为了能够在项目中快速开发MDDialog 阅读全文
posted @ 2016-05-26 10:28 carbs 阅读(6195) 评论(0) 推荐(0) 编辑
摘要: 在开发过程中经常遇到多个activity是同一种样式类型的情况,如果分别对其进行UI的布局,不但比较繁琐,而且后续维护过程人力成本很高,不利于敏捷开发。解决的方案是采用抽象后的BaseActivity。 BaseActivity一般作为一个app的所有或者部分activity的父类,并覆写setCo 阅读全文
posted @ 2016-04-26 19:40 carbs 阅读(856) 评论(0) 推荐(0) 编辑
摘要: android提供了一系列的动画处理api,包括animator以及animation等。由于动画效果是根据人眼视觉残留原理形成的,因此动画过程中android需要不断频繁的更新view的相关属性,由此造成的开销也就比较大。当我们想制作比较复杂的动画,比如同时开启5个view的动效,这时如果单纯抛给 阅读全文
posted @ 2016-03-25 15:32 carbs 阅读(850) 评论(0) 推荐(0) 编辑
摘要: java中的字符串比较一般可以采用compareTo函数,如果a.compareTo(b)返回的是小于0的数,那么说明a的unicode编码值小于b的unicode编码值。 但是很多情况下,我们开发一款app需要结合“国情”,比如在电话本中,我们希望“李四”排在“zhangsan”的前面,但是如果采用普通的compareTo函数的字符串比较的方式,那么“zhangsan”小于“李四”,由此造成了“zhangsan”的排序先于“李四”。 阅读全文
posted @ 2016-03-23 19:01 carbs 阅读(4908) 评论(0) 推荐(0) 编辑
摘要: 为了有更好的UI体验,一般我们会把button、textview等控件的背景设置上阴影。传统的做法是美工提供一张具有阴影效果的nine patch图,然后将其在xml文件中添加到background属性。这种做法没有问题,不过缺乏灵活性。 图1.使用代码生成的具有“阴影”效果的控件 在android 阅读全文
posted @ 2016-03-21 17:46 carbs 阅读(10662) 评论(0) 推荐(0) 编辑
摘要: CircleImageView的代码很简洁,因此先将此工程作为源码解析系列的第一篇文章. 解析说明都在代码里了。 阅读全文
posted @ 2016-03-15 19:13 carbs 阅读(1207) 评论(0) 推荐(0) 编辑
摘要: 公历农历日期选择器 项目地址:https://github.com/Carbs0126/GregorianLunarCalendar android自带的DatePicker具有日期选择的功能,但是由于不同的rom可能会对此控件进行深度定制,且扩展性较差,因此如果我们在自己的程序中使用此控件,很可能 阅读全文
posted @ 2016-02-29 16:42 carbs 阅读(5379) 评论(1) 推荐(0) 编辑
摘要: android的RadioButton的使用历来都让人比较头疼,如在布局方面,图案、文字无法分别设置padding等,另外,低版本的android RadioGroup不支持换行排列的RadioButton(此bug在4.4以上貌似已经修复)这里我自定义了一个VariedRadioButton,主要... 阅读全文
posted @ 2016-01-19 13:45 carbs 阅读(7218) 评论(0) 推荐(0) 编辑
摘要: 知乎等应用的开场动画是:全屏显示一副图像,并以图像的中间为原点,实现放大(也就是zoomin)的动画,让等待的过程不再单调乏味。最近不是很忙,因此想了下如何实现这种效果,方案是:采用调整imageview的matrix的方式来实现此效果。这个例子中我只是简单的将原理实现,没有对效果进行任何的优化。如... 阅读全文
posted @ 2015-12-23 20:25 carbs 阅读(2012) 评论(0) 推荐(0) 编辑
摘要: android自定义view,实现竖直方向的文字功能,文字方向朝上,同时提供接口,判断当前touch的是哪个字符,并改变颜色。由于时间比较仓促,因此没有对代码进行过多的优化,功能远远不如android的自带的TextView强大,只是继承于view,而不是textview。主要用途:电话本的侧边快速... 阅读全文
posted @ 2015-12-18 11:35 carbs 阅读(3347) 评论(0) 推荐(0) 编辑
摘要: 在android应用程序中我们可能需要切换模式,如晚上切换到夜间模式便于阅读等。本文参考了网上的一些资料,并结合实例,实现了动态更改主题的效果。Android中实现theme主题可以使用在activity中使用setTheme(int)的方法,SDK中对此方法的说明为://Set the base ... 阅读全文
posted @ 2015-12-03 11:36 carbs 阅读(24842) 评论(0) 推荐(0) 编辑
摘要: 之前在网上看到一篇viewpager简单使用的例子程序,主要采用了上部标签button+中间指示作用的imageview+下部viewpager的结构,点击上部标签,或者滑动viewpager,均可以使中间的imageview产生滑动效果,但是由于程序不够完善,当改变imageview背景等时,不能... 阅读全文
posted @ 2015-12-01 17:06 carbs 阅读(1302) 评论(0) 推荐(0) 编辑
摘要: 定义:我们可以在Android的framework中的ViewGroup类里找到定义的类:1 public static class LayoutParams{...}此类有如下注释:LayoutParams are used by views to tell their parents how t... 阅读全文
posted @ 2015-11-30 14:40 carbs 阅读(5034) 评论(0) 推荐(0) 编辑
摘要: 一.什么是cookies? 大家都知道,浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的 连接。因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知。为了 阅读全文
posted @ 2013-01-22 09:40 carbs 阅读(13933) 评论(0) 推荐(2) 编辑
摘要: 在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组.这个表示在不通Operation System下,返回的东西不一样!String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如:byte[] b_gbk = "中".getBytes("GBK");byte[] b_utf8 = "中".getBytes("UTF-8");byte[] b_iso88591 = "中".ge 阅读全文
posted @ 2013-01-22 00:07 carbs 阅读(599) 评论(0) 推荐(0) 编辑