自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

乌龟赛跑

你在某件事上花费的时间都是值得的。

  • 博客(19)
  • 资源 (8)
  • 问答 (3)
  • 收藏
  • 关注

原创 二十三、发帖多图选择

在发帖时,可以从手机相册选择图片,最多可以选择9张。要实现的效果如图所示:单击右上角的勾勾选择图片或者取消选择。一开始我的实现逻辑是这样的:1、在adapter里面的绑定ViewHolder时,设置勾勾的点击事件:vh.hookImageView.setOnClickListener(new View.OnClickListener() { @Override

2016-08-30 10:31:34 418

原创 二十二、图文混合排版

我们在APP上看的帖子,有文字又有图片,经过我个人分析,应该就是通过图文混合排版实现的,主要用到的类就是SpannableStringBuilder。在帖子中显示的图片,保存在服务器时,就是一个链接地址,为了便于我们在文章中把图片链接地址找出来,我们规定图片链接的格式是:{image=链接地址},这样我们就可以通过正则表达式找出图片链接和图片的位置,然后替换成图片插入到文章中。一、

2016-08-29 16:32:47 940

原创 二十一、修改头像(2)----上传头像图片

上传图片的存储服务器用的是阿里云的OSS

2016-08-20 15:26:29 1589 1

原创 二十、修改头像(1)----选择相册

点击“从手机相册选择”图片后,打开相册列表,选择一个相册,第一个相册是所有照片。这部分有两个点需要注意,一个是获取所有相册和显示相册图片时容易造成的OutOfMemery异常。一、获取所有相册由于这个过程不是瞬间能够马上完成的,为了防止程序卡死,采用异步的方式加载,封装成一个工具类,加载完成后回调。使用起来就很简单:// 读取相册AlbumUtil.getAllAlbum(t

2016-08-19 14:49:52 459

原创 十九、使用PopupWindow

一、PopupWindow与AlertDialog的区别最关键的区别是AlertDialog不能指定显示位置,只能默认显示在屏幕最中间(当然也可以通过设置WindowManager参数来改变位置)。而PopupWindow是可以指定显示位置的,随便哪个位置都可以,更加灵活。

2016-08-18 23:12:36 761

原创 十八、封装SQLite

把一些数据放在本地数据库,当离线时,展示缓存的数据给用户,不至于什么内容都没有。首先创建数据库类,每次新登录的用户创建不同的数据库:public class KengOpenHelper extends SQLiteOpenHelper{ private static String DB_NAME_ = "user_"; private static int versio

2016-08-18 13:40:23 293

原创 十七、自定义进度对话框

当用户进行需要等待一段时间的操作的时候,我们需要给用户一个等待的反馈,不然用户会以为你的APP卡死了,一般会用一个圆圈来转,但是系统提供的圆圈实在是太丑,所以我自定义一个进度对话框。进度对话框由两部分组成,一个转的圆圈,和提示文字,布局如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

2016-08-17 17:38:07 407

原创 十六、自定义联系人导航(下)---RecyclerView增加头部和事件监听

在listview中我们可以很方便的增加头部view,但是RecyclerView并没有给我们提供相应的方法,而且比较坑的一点,RecyclerView没有提供ItemClickListener方法,需要我们自己去实现,既然RecyclerView提供了灵活性,那么有些事情就需要我们自己去实现了。一、增加头部view其实我这里实现方法是直接把头部放在RecyclerView的item,因为

2016-08-16 21:01:20 603

原创 十五、自定义联系人导航(中)---带悬停的联系人列表

上一篇我们实现了首字母导航,滑动停止后跳转到相应的联系人分组: mTextNavigationView.setNavigationListener(new TextNavigationView.NavigationListener() { @Override public void onSelect(String text) {

2016-08-16 16:13:39 1071

原创 十四、自定义联系人导航(上)---字母导航栏

联系人的界面需求是这样的:所有的联系人以首字母分组,右边是字母导航栏,滑动或者单击相应的字母,跳转到对应的分组。首先实现这个自定义字母导航栏。public class TextNavigationView extends View{ private int mWidth, mHeight; // 控件宽高 private int position = -1; // 点击位

2016-08-15 20:54:41 1206

原创 ListView异步加载图片混乱问题

ListView加载多个图片的时候,图片是异步加载的,当item数量多于一屏时,滑动ListView,后面的item在加载图片的时候会混乱。问题原因是ListView的item复用问题,ListView不会每次都去创建新的item,而是尽量复用之前的item,这就会导致item上图片混乱的问题,也许image对应的position已经改变了,但是它还是去加载以前的bitmap,所以我们要保

2016-08-15 13:22:55 582

原创 android多图片缓存

在android的ListView或者GridView中加载大量图片是非常痛苦的,特别是从网络或者其他地方异步加载,需要一个下载的过程,不可能每次滑动页面都要去重新下载图片,这时候缓存就显得尤为重要了。我的需求是:显示所有视频的缩略图,并且显示视频时长。获取视频缩略图的代码:public static Bitmap getVideoThumbnail(String filePath)

2016-08-15 13:16:14 340

原创 十三、签到和小红点功能

当天如果未签到,则在签到的按钮右上角显示一个小红点,点击后红点消失。在主页的fragment创建时判断今天有没有签到,没有签到则显示小红点: private void initData() { if (!SignUtil.isSignedToday()) { // 今日没有签名则显示小圆点 mTitleBarView.s

2016-08-13 20:04:20 616 6

原创 十二、空白页

当某个页面无内容时,我们需要展示一个空白页给用户,用户才知道是没有加载出内容,点击空白页可以刷新页面。自定义空白页面,经过前篇的自定义控件,写一个自定义空白页应该很简单了:public class EmptyView extends LinearLayout{ private ImageView emptyImageView; private TextView empty

2016-08-13 15:38:07 370

原创 十一、主页fragment

主界面我使用一个MainActivity来控制,4个tab页面分别采用4个fragment来切换,这样每个页面都是单独的存在,逻辑也是相互独立的。定义一个基类fragment,所有的fragment都继承自它:public class BaseFragment extends Fragment{ protected View view; public void setM

2016-08-13 14:24:21 263

原创 十、自定义标题栏

应用中的标题栏都是统一风格的,为了方便使用,我们统一封装自定义标题栏控件,主要用到自定义属性的内容。标题栏的java代码:public class TitleBarView extends RelativeLayout{ private TextView leftTextView; private TextView titleTextView; private T

2016-08-13 13:45:35 403

原创 九、自定义Tab

现在流行的主界面都是底部有几个tab,点击切换到不同的页面,下面我们自定义这个tab控件。采用最简单的自定义控件的方法,继承自android自带控件,继承LinearLayout即可满足要求。public class KengTabHost extends LinearLayout implements View.OnClickListener{ private int tabN

2016-08-12 21:15:35 367

原创 八、三方登录

三方登录采用友盟SDK,选择SDK类别的时候,选“U-Share分享“,因为分享有带登录的功能,没有专门的三方登录SDK。集成过程就不用说了,按照文档一步步来。遇到一些问题:1、三方登录的昵称有汉字,传到服务器后台的时候是正常的,但是保存到数据库的时候乱码这是由于mysql设置的问题导致的,找到mysql安装目录下的my.ini 配置文件,服务器采用gbk编码,数据库采用utf

2016-08-11 17:22:51 358

原创 activity从底部弹出动画

要实现activity从底部弹出的动画,一般参考这篇博文就能实现:http://blog.csdn.net/spy19881201/article/details/5861193但是我的需要还有点特殊,同一个activity,在正常情况下是按系统默认的方式打开,但在特殊情况下(收到通知后点击打开该页面)是从底部弹出的,所以就不能在xml文件中写死theme属性,如果用java代码实现也有问

2016-08-02 11:33:00 8982 1

github for windows离线包

github for windows离线包,下载后解压,直接运行GitHub.application即可。

2016-11-03

android可暂停的录制视频(修复秒拍闪退)

android前置竖屏摄像头录制视频保存到本地,Camera+MediaRecorder实现,并支持暂停和恢复录制功能,修复快速按暂停和恢复会闪退的异常

2016-10-21

android可暂停的录制视频

android前置竖屏摄像头录制视频保存到本地,Camera+MediaRecorder实现,并支持暂停和恢复录制功能

2016-10-20

android前置竖屏摄像头录制视频保存到本地

android前置竖屏摄像头录制视频保存到本地,Camera+MediaRecorder实现

2016-10-18

安卓emoji表情

安卓emoji表情

2016-09-14

自定义输入框--输入法与表情面板切换

自定义的输入框一般都有输入法与表情面板切换的功能,要做到美好的切换体验也是不容易的。切换时不要闪,闪的原因是输入法出现时,会把activity往上挤压,输入法隐藏时,activity又会复原,这个过程,我们的界面就会跳来跳去,给人感觉就是闪瞎眼睛。

2016-09-13

简易移动应用服务器

搭建一个简单的安卓应用的服务端。采用Struts2+hibernate的架构。IDE使用eclipse,数据库使用MySQL。

2016-07-26

VC的若干实用小技巧

VC的若干实用小技巧,借助于一些调试等的小技巧,可以让你轻松的完成VC的工作。

2013-10-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除