作为一个菜鸟写这个Tools前我就一直在想,我们自己的项目中有很多很棒的工具类和一些自定义的View,而这些View或者工具类在网上或有或没,既然他们懒得弄或者不屑弄,那好吧我来整理吧。也就是基于这个原因我开始创建并且维护这个库,我所希望的是这个库能帮助到一部分Android初级的开发人员,也希望每一个看到 AndroidCodeTools
这个库的码神们,能多多的 Pull 你们开发中所遇到的优秀的工具类或者自定义View。
AndroidCodeTools (持续更新...)
GitHub:https://github.com/Pgrammerybj/AndroidCodeTools
分类
- Android工具类
- Android自定义控件
- Android自定义动画
Android工具类
1.之前在网上看到很多人遇到过在一个TextView是实现类似于Html中的超文本点击跳转的效果,正好这次项目中正好也有这个需求,然后自己也就利用SpannableStringBuilder撸了一个工具类。当然网上也有跟多不错的实现方式,我就不在这儿累赘了,大家一起交流咯。
setTextViewHyperlink(TextView textView,String content,int textColor,int start1,int end1, OnTextViewhyperlinkOnClickListener listener))
- @param textView 文本控件
- @param content 内容
- @param textColor需要响应点击事件文本的颜色
- @param start1 可点击文本1的开始角标
- @param end1 可点击文本1的结束角标
- @param start2 可点击文本2的开始角标(可选)
- @param end2 可点击文本2的结束角标(可选)
- @param listener 超链接点击监听
TextView hyperTextOne = (TextView) findViewById(R.id.tv_user_protocol_1);
//一个文本链接
UIUtilsView.setTextViewHyperlink(hyperTextOne,
getString(R.string.information_002),
getResources().getColor(R.color.defaultLinkText), 9, 17,
new UIUtilsView.OnTextViewhyperlinkOnClickListener() {
@Override
public void onClick(String text) {
// FIXME: 2017/8/2 这里能获得到你点击事件,后续逻辑如何自己看需求哈
// text :这个text就是你所点击的文字
}
}
);
⬆️上面是TextView文本中有一个点击事件的调用方式
TextView hyperTextTwo = (TextView) findViewById(R.id.tv_user_protocol_2);
//两个文本链接
UIUtilsView.setTextViewHyperlink(hyperTextTwo,
getString(R.string.information_001),
getResources().getColor(R.color.defaultLinkText), 7, 15, 16, 28,
new UIUtilsView.OnTextViewhyperlinkOnClickListener() {
@Override
public void onClick(String text) {
// FIXME: 2017/8/2 有人说不对啊我这儿有两个点击事件啊,
// 对的两个点击事件都走这一个监听,那么如何区分呢,就靠您的 text 字符串equles咯
}
}
);
⬆️上面是TextView文本中有多个点击事件的调用方式
(怎么效果图没有动画?哈哈不要捉急,稍微等一下咯)
总结一下吧:目前是获取相应需要有点击事件和变色的文本的角标来实现的,还是有些许麻烦,望广大朋友给点儿优化意见和建议。
Android自定义控件
- 自定义密码、验证码输入框,类似于支付、微信支付的密码输入界面
VerifyCodeView.setInputFinishListener(new VerifyCodeView.InputFinishListener() {
@Override
public void inputFinish(String strCode) {
//密码输入完成,做你想做的
}
});
Android自定义动画
致谢
- 感谢廖子尧(jeasonlzy)在开发中提出的帮助和建议(欢迎关注他的开源项目okhttp-OkGo)