- 博客(27)
- 资源 (2)
- 收藏
- 关注
原创 Mina粘包,断包问题处理(附完整实例,客户端,服务端)
1.什么是断包,粘包?在讲断包,粘包之前,先说下消息保护边界和无消息保护边界。 1.保护消息边界,就是指传输协议把数据当作一条独立的消息在网上传输,接收端只能接收独立的消息.也就是说存在保护消息边界,接收端一次只能接收发送端发出的一个数据包. 2.而面向流则是无消息保护边界的,如果发送端连续发送数据, 接收端有可能在一次接收动作中,会接收两个或者更多的数据包。而tcp是面向流的,需要在消息接收端
2018-03-28 22:07:53
3121
3
原创 android 三档开关做法
项目中要实现一个如下的开关按钮,可以滑动到左,中,右的三档开关,然后如果滑动到超过25%,则自动滑到第二个档位,如果滑动到超过75%,则自动滑到第三个档位。 符合这种需求的,我想到了用android的seekbar来实现效果。但是,用这个控件时遇到了种种的坑,苦不堪言。首先是背景图显示不全,后来只能用FrameLayout,把seekbar的背景图放到底层,左右thumb显示不全,只能控制扩大s
2017-11-12 19:30:20
2816
1
原创 android显示缓存大小和清除缓存功能
andorid 缓存的话,一般分 1.cache缓存,cache缓存又分为外部sd卡cache和内部sd卡cache。 内部sd卡cache路径在 data/data//cache 下的文件 外部sd卡cache路径在 SDCard/Android/data//cache下的文件 2.File存储 路径在内部sd卡中, data/data//files下的内容 3.database
2017-10-06 13:00:29
675
原创 ViewPager 一屏显示多个效果
项目中我们经常要求实现像上图那种ViewPager中一屏显示多个页面的做法,下面来看怎么实现这种效果。 首先我们先了解android:clipChildren=”false”,这个属性,默认是true。 使用的时候给子View和根节点View控件都设置android:clipChildren=”false”,那么这个子View就不会限制在父View当中,会产生那种旁边页溢出的效果。 设置Vie
2017-03-06 14:28:27
1933
原创 android studio File Explorer中查看不到SharedPreferences保存的文件
这几天把android 的内部存储学了一遍,发现一个问题,当我打开android studio的File Explorer查看SharedPreferences保存的xml文件时,发现data/data/包名/shared_prefs文件夹下是空的,还有通过SqLiteDataBase和SQLiteOpenHelper生成的数据文件和通过File文件读写生成的文件也找不到。百度了一下,原来只有在模拟
2016-10-22 17:42:39
7293
1
原创 自定义居于底部的选择国家的滚动选择器
这两天项目中有用到一个国家的滚动选择器的效果,我就研究了下。效果图如下 首先用到的第三方控件,地址:https://github.com/weidongjian/androidWheelView/,这个第三方控件有个限制,传入的数据的数量必须在9条以上,不然就会报错。还有这个项目默认自带能记住上次的选择项。 首先,把项目下下来,然后找到androidWheelView-master\app\
2016-02-22 09:46:31
3169
2
原创 自定义PopupWindow实现下拉菜单选项效果
在android 项目中,有时候我们要用到下拉菜单的效果,比如,如下,这种界面,这时候,我们就可以用自定义PopupWindow的方式来实现这种功能了。下实例还带了一个界面透明度变化的功能。首先我们自定义一个平滑过渡透明度的popupWindow,实现打开popupWidow背景透明值变化的效果public class StyleAlphaPopWind
2016-01-26 10:35:09
4046
原创 android PopupWindow详解
在 android开发中,我们经常要用到PopupWindow来实现一些弹出框的效果,那什么时候用PopupWindow,什么时候用AlertDialog呢?PopupWindow与AlertDialog的区别在于AlertDialog显示在固定的屏幕中间位置,而popupWindow可以自己设置显示位置。 popupwindow有两种确定位置的方式:1.showAsDropDow
2016-01-25 17:43:10
708
转载 Android的Touch Mode
转自:http://www.cnblogs.com/frydsh/archive/2012/10/15/2724909.html 大多数Android设备都是触摸屏的,但是实际上Android设备也支持键盘操作,允许通过键盘来完成导航,点击,输入等。 当用户通过键盘(或者轨迹球)操作的时候,有必要聚焦当前接受输入的UI元素,例如,高亮(聚焦)某个按钮,
2016-01-24 20:51:57
332
转载 android之回调函数的用法和意义
转载自 : http://blog.csdn.net/jason0539/article/details/10168899CallBack是回调的意思,一般称之为回调函数百科的解释:http://baike.baidu.com/link?url=8yMUwVEFRzxR4JGMxVN_UnFgJIH4WTnsybuW5NfwgKqVKP8NtShfJnNNeY9mBzRT用
2016-01-22 11:30:23
1067
原创 一个TextView实现不同部分添加不同样式
首先感谢这位博主,让我对SpannableStringBuilder的用法有了更深的理解。博主博文:http://blog.csdn.net/harvic880925/article/details/38984705 在实际的应用开发过程中经常会遇到,在文本的不同部分显示一些不同的字体颜色,比如这种,一般按往常的做法,要用两个TextView来实现不同样式,但是现在,我们可以
2016-01-21 17:39:28
1534
原创 android 自定义提示框效果(2)
上篇文章讲了自定义提示框效果的一种写法,但是还有一种写法:不需要去继承Dialog,直接new 一个Dialog.,setContentView,这种感觉更简便。如下,承继上一篇,不懂的先看上一篇LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=
2016-01-20 18:22:57
333
原创 android 自定义提示框效果(1)
在android 项目中,很多时候要用到弹出框效果,不过系统自带的AlertDialog样式有时满足不了我们项目的需求,这时就要自定义提示框效果了,比如如下这种圆角矩形的提示框效果:下面我写两种方式去实现它:第一种:.自定义View的形式写个类继承Dialog,在构造方法中setContentView()设置布局文件,然后注册监听事件activity 布局 xml文件
2016-01-20 14:55:54
506
原创 如何将eclipse项目导入android studio中
选择android studio中的new Module, 然后选如下,导入eclipse项目,必须是eclipse的项目,不是编译成gradle项目的,然后next,就可以了。
2016-01-19 09:05:42
420
原创 android 项目中两个监听执行相同操作的简便写法
在android 项目中,我们有时会遇到两个相同情况的监听事件,比如如下private OnClickListener mClickListener = new OnClickListener() { @Override public void onClick(View arg0) { switch (arg0.getId()) {
2015-12-16 13:56:14
666
原创 Handler实现验证码获取倒计时功能
最近在项目中,做了绑定手机这一块,接触到了验证倒计时的功能,现在拿出来共享一下。Handler里面有个延时发送消息的方法,可以实现定时的效果,废话少说,上demo.
2015-12-08 17:27:27
565
原创 RelativeLayout 中android:layout_toRightOf无效原因
如果一个ImageView设置宽高为wrap_content,没有设置图片的话,则设置一个控件android:layout_toRightOf在这个ImageView的右边,则这个控件不显示。
2015-12-08 16:11:50
4844
1
原创 android 项目中的非空判断
看这个之前,我们先要理解下什么是空指针异常,所谓的空指针异常,就是一个指针是空指针,你还要去操作它,既然它指向的是空对象,它就不能使用这个对象的方法或成员变量,当我们在java中如果一个引用变量指向的是空,当我们访问它的成员变量或者方法时,java系统就会报NullPointerException。 比如Person person=null;Person 对象中有个eat()方法,当我们
2015-11-20 11:28:27
2619
原创 在Activty中处理adapter中的监听事件的写法
在android 项目中,我们经常用到OnClickListenr这个监听器类,一般情况下,这些监听事件没有什么复用性,大部分只是临时使用一次,所以我们可以将它定义为匿名内部类。 有时候我们在从事android项目开发时,如果一个activity中有好几个控件有点击监听,可能要写好几次new OnClickListner(),所以,为了减少代码重复量,我们可以将这个匿名内部类提取出来。
2015-11-16 09:03:39
5252
3
原创 LinearLayout中实现水平方向上的两个textview一个居左,一个居右的效果
我们知道,在LineraLayout中,当设置android:orientation="horizental" ,子控件的android:layout_gravity="left",android:layout_gravity="right"是无效的,所以我们可以改用比重的方法来达到两个textview一个居左,一个居右的效果,如下这种效果Demo 如下LinearLayout
2015-11-13 16:10:30
31270
4
原创 EditText 如何定义光标的位置
查看android API文档,EditText 中有个方法setSelection(int index),可以定位光标的位置,index是从0开始,而在字符串中index为0是在字符串的最前端,像这样,所以如果要将光标定义在字符串的尾部,则定位的index可以为字符串的长度,如下:EditText etMain;etMain = (EditText) findViewB
2015-11-12 18:18:53
486
原创 android项目中提取公共adapter的写法
在android项目中,有时候我们需要写很多个适配器,这时候,adapter就会有很多个,会造成代码重复。这时候,我们就可以考虑提取一个公共的CommonAdapter出来。 我们将公用的一些方法放在这个adpater中,将这个adapter定义为抽象类,把公用的方法放在这个抽象类中实现,然后让子类自己去重写getView方法。 如下是这个公用的CommonAdap
2015-11-12 10:57:11
1400
原创 android studio中报error: Apostrophe not preceded by \错误
今天叫别人将string.xml文件中的中文翻译成英文,然后运行android studio后,发现报error: Apostrophe not preceded by \错误,发现出错原因是我们在string.xml文件中单引号之前没有加反斜杠转义。比如You don't have any followers!这句话要改成You don\'t have any followers!这种,然后
2015-11-09 12:02:17
571
原创 Java中的向上转型与向下转型
Java中的类的继承关系中,有向上转型与向下转型两种。 当父类的引用指向子类对象时,称为向上转型。比如Father是父类,Son是子类,则Father father=new Son()这种就是向上转型;这个时候执行的是指向的子类对象的方法。如下public class Father { public void eat() { System.out.p
2015-11-04 11:23:38
973
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人