android
北漂雨田
android软件开发
展开
-
GRPC 负载均衡实现
gRPC 是google开源的非常优秀的RPC框架,支持PYTHON/JAVA/PHP/GO/C/C++/C#/NODEJS/RUBY 等编程语言,在跨语言调用十分方便。在产品环境,通常要部署多个RPC服务,已提高可用性,以及响应速度。但是在负载均衡方面不如dubbo的组件那么丰富,但是其提供了服务发现的接口, 可以通过实现其接口,灵活实现负载均衡功能。下面通过本地配置文件,启动时注册可用的服务,可以快速实现负载均衡功能。grpc:hosts: host1:8080,host2:8080Ma原创 2021-11-12 11:30:11 · 966 阅读 · 0 评论 -
PopupWindow setOutsideTouchable(false)无效问题完美解决方案
最近遇到一个问题,在PopupWindow上有一个Edittext 需要设置setfocus(true) 才可以打开键盘输入,但是呢setOutsideTouchable(false) 设置点击外部不可关闭时又必须得setfocus(false) 这样就比较尴尬了,查了很多资料最后发现可以设置拦截的方式来解决如下setTouchInterceptor(new View.OnTouchListener() { @Override public boolea原创 2021-11-12 11:22:50 · 1071 阅读 · 0 评论 -
android LayoutAnimation的基本用法和说明
LayoutAnimation作用于ViewGroup,为ViewGroup指定一个动画,这样当它的子元素 出场时都会具有这种动画效果。这种效果常常被用在ListView上,我们时常会看到一种特 殊的ListView,它的每个item都以一定的动画的形式出现,其实这并非什么高深的技术, 它使用的就是LayoutAnimation。LayoutAnimation也是一个View动画,为了给ViewGroup 的子元素加上出场效果,遵循如下几个步骤。(1)定义LayoutAnimation,如下所示。//原创 2021-04-01 13:19:43 · 997 阅读 · 0 评论 -
android levellistdrawable 基本使用
levellistdrawable可以通过改变level值来切换相应的图片。一:在drawablw文件夹下:<?xml version="1.0" encoding="utf-8"?><level-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/lamp_on" //灯亮的图片 android:min原创 2021-03-31 09:47:49 · 360 阅读 · 0 评论 -
android事件分发流程说明
事件分发主要分三块:分发、拦截、消费; 当我们触摸到屏幕的时候,默认会先走Activity的分发,接着走ViewGroup的分发,然后到ViewGroup的拦截,后面再到View的分发事件,最后会传到View的消费事件,如果View不消费,紧接着回传到ViewGroup的消费事件,如果ViewGroup也不消费,最后回到View的消费事件。整个事件分发构成了一个u型结构,下面总结了分发的细节流程:如果ViewGroup的dispatchTouchEvent返回true或false,touch事件不会往子v原创 2021-03-24 13:37:50 · 549 阅读 · 0 评论 -
Kotlin for循环的几种使用方法
在Kotlin中想遍历1-100的数值可以这样写:for (index in 1..100){ print(index) }这样写是正序遍历,如果想倒序遍历就该使用标准库中定义的downTo()函数:for (index in 100 downTo 1){ print(index) }想不使用1作为遍历的步长,可以使用step()函数: for (index in 1..100 step 2){原创 2021-03-23 14:17:43 · 885 阅读 · 0 评论 -
java正则,过滤掉HTML标签,但保留指定的标签如 p,img,span
/**过滤HTML里去除img、p、span外的所有标签* @param str* @return* @throws PatternSyntaxException*/public static String stringFilter(String str)throws PatternSyntaxException { String regEx = "(?!<(img|p|span).*?>)<.*?>";Pattern p_html = Pattern.compile原创 2021-03-23 13:27:11 · 931 阅读 · 1 评论 -
Android Chronometer实现时分秒的显示
int miss = 0;chronometer.start();chronometer.setOnChronometerTickListener(new OnChronometerTickListener() { @Override public void onChronometerTick(Chronometer ch) { miss++; ch.setText(FormatMiss(miss)); } }); // 将秒转化原创 2021-03-18 09:17:01 · 885 阅读 · 0 评论 -
SharedPreferences封装类SPUtils
在开发中经常需要使用数据缓存,存储一些简单的数据,所以一般情况下SharedPreferences是最好的基础数据缓存的最佳选择public class SPUtils{/*** 保存在手机里面的文件名*/public static final String FILE_NAME = "share_data";/*** 保存数据的方法,我们需要拿到保存数据原创 2017-08-07 15:40:25 · 347 阅读 · 0 评论