- 博客(38)
- 资源 (1)
- 收藏
- 关注
原创 Google及Facebook第三方登录问题,“将你登入到此应用时出错,请稍后再试”
最近项目需求,需要加上Google及Facebook的第三方登录功能。在根据官方文档按步骤完成配置后,在真机上测试正常。 Google登录官方指导文档:https://developers.google.com/identity/sign-in/android/sign-in Facebook登录官方指导文档:https://developers.facebook.com/docs/facebook-login/android/此时,一切正常,高高兴兴打包发布到Goo...
2020-05-22 19:08:21
13343
1
原创 自定义变形饼图
运行效果:关键效果描述:半径不同的扇形、扇形的弧度根据占比决定、有展示动画、有阴影、有指示线、有点击事件。 直接上代码:不规则扇形饼图package demo.hanli.hldemo.modules.custompie.widget;import android.animation.ValueAnimator;import android.cont...
2019-09-03 20:15:47
1072
原创 微信开放平台的移动应用与微信公众平台的小程序的账号识别问题
项目需求:移动端开发支持微信分享及微信登录的功能。 程序员小甲:果断到微信开放平台注册应用,获取到相应的APPID及APPSecret信息,很顺利搞定两个功能,完美~ 项目新需求:需要开发对应的微信小程序版。 程序员小乙:果断到微信公众平台创建小程序,马不停蹄开发功能,终于完成~ 项目联调:小甲和小乙发现同一个微信用户在...
2019-08-20 15:10:47
367
原创 获取签名文件的Hash散列
在facebook开发平台创建应用时,需要输入Hash散列。 首先下载OpenSSL插件并安装,注意记住安装位置。如果不安装这个插件的话,后面的步骤会提示你"'openssl' 不是内部或外部命令". 然后再AS的命令符输入框中输入以下信息:keytool -exportcert -alias 签名文件别名 -keystore "签名文件路径\keyst...
2019-05-24 16:43:01
784
原创 BRVAH + RecyclerView模式出现一直调用onLoadMoreRequested的问题
开发过程中发现页面一直在抖动式的执行加载更多,如下所示: 经过调试,发现程序一直在回调onLoadMoreRequested方法,这是什么情况???查看源码后,发现原来是处理获取到的数据时,出现的问题(以下插入的是假数据):private void load(int page){ mList.clear(); for (...
2019-05-14 11:30:20
2250
原创 Glide获取图片原始宽高并展示
场景需求:希望以图片的原始宽高比进行缩放,实现即使在缩略图情况下,也能看到全图。且多张图片可水平滑动。代码: //处理图片 private void dealWithPhoto() { //移除布局中已存在的视图 llPhoto.removeAllViews(); for (int i = 0; i < photos.size...
2019-05-04 10:00:27
6056
2
原创 Glide下载图片
前景提要:新版Glide与旧版Glide下载图片的调用方式稍有不同。旧版Glide请参考:Android 使用Glide下载图片的几种方式新版Glide下载图片:Glide.with(context).downloadOnly().load("网络图片URL").into(new SimpleTarget<File>() { @Override ...
2019-03-28 17:13:19
1996
1
原创 部分机型无法访问网络
前提:已经在AndroidManifest.xml清单文件中声明了网络权限,网络权限获取正常,手机网络连接正常。现象:部分机型无法访问网络,如华为P20。描述:在高版本系统(如Android P)的设备上,如果应用使用的是非加密的明文流量的http网络请求,则会导致该应用无法进行网络请求,https则不会受影响,同样地,如果应用嵌套了webview,webview也只能使用https请求。...
2019-03-25 14:20:19
386
原创 动态设置ListView高度
前言:此处仅记录开发时遇到的问题,作为笔记供后期参考。 适用场景:当遇到ScrollView嵌套ListView时,ListView的数据会出现展示不全的问题。 失误:本人一开始仅仅是通过下方展示的方法根据Item高度设置ListView的整体高度,如下:public static void setListViewHeightBasedOnChildren(ListVi...
2019-01-10 10:46:30
1251
1
原创 远程桌面剪切板无效
最近,用远程桌面比较多,今天发现剪贴板不能用了,查了一些资料,是进程rdpclip.exe出的问题。方式一:cmd命令1.打开cmd,输入命令“tasklist”,可以查看现在正在运行的所有进程信息,有进程名称,pid,内存使用情况等。 2.我们找到需要结束进程的pid编号,输入“taskkill /pid 编号 /f”,按回车键。3.或者我们也可以通过进程的名称来...
2018-09-20 14:15:00
3450
原创 自定义View高度自适应
原理:在onMeasure()方法中获取子视图高度,然后调用setMeasuredDimension()方法指定视图宽高。举例:自定义控件中绘制文本信息,且文本能够自动换行,这个时候就需要获取文本内容换行后的最大高度。以下以水平方向绘制等宽的多个字符串,且字符串之间能够水平居中为例。源码:指定视图高度关键源码(在onMeasure()方法中编辑) Rect rect...
2018-09-20 14:08:21
4920
原创 自定义倒计时器
今天整理了一下实现计时器的常用方式,有下面几种:排序 组合方式 附注 1 Timer+TimerTask 2 Timer+TimerTask+Handler 3 Handler 4 Handler+Thread 5 Handler+Runnable 6 CountDownT...
2018-09-12 17:34:00
2514
原创 自定义下拉弹框
首先自定义PopupWindow,主要是个listView。public SpinerPopWindow(Context context, List<T> list, OnItemClickListener clickListener) { super(context); inflater = LayoutInflater.from(con...
2018-09-12 16:02:56
545
原创 Glide缓存导致图片不更新
Glide是一个非常好用的图片加载框架,它可以很好的缓存图片以提高图片加载效率。 但是在使用的时候,会出现一个问题:当服务器图片资源已经更新,但是URL地址不变时,Glide不会重新加载URL,而是从缓存中读取旧的图片资源。 下面给出两种解决方式: 1、仅使当前网络加载为服务器新数据——治标,一次性: 此方法关键在于指定Re...
2018-09-12 14:42:45
6915
3
原创 Android Studio之APP国际化
1、字符串国际化:只要在 res 文件夹下新建对应语言的 values 文件夹就好了, 如,英语环境下的,文件夹命名为:values-en 美国英文环境:values-en-rUS 中文环境为:values-zh 大陆地区中文环境: values-zh-cn 在 eclipse 下新建 Android 项目时,会在 res 目录下自动创建一个默...
2018-09-07 13:42:33
4215
原创 安卓国际化之Excel表格导入strings.xml
紧接上一篇博文,下面我们说一下Excel中的文本资源如何导入strings.xml: 首先将表格文件另存为.txt用notepad或者editplus打开转储的文件,发现第一行有对引号,为了让一会儿写的正则表达式简单点,先人为删掉。在“查找目标”栏目中输入:\s*(\S*)\s*(\S*),并在“替换为”栏目中输入:<string name="$...
2018-09-07 13:28:42
1703
1
原创 安卓国际化之strings.xml导入Excel表格
APP国际化已经是一个比较常用的需求了,当然中文部分身为开发人员自己就能三两下搞定,英文部分如果要求不严格的话,自己也能七八下解决。但是,如果是其他语种。。。emm,我们身为开发人员的是不会越俎代庖的,还是交给专业人士好了,哈哈哈。 这个时候,如果那些专业人士让你提供个表格而不是.xml文件的话,就需要进行下面的操作啦——伟大的正则表达式~ 首先用no...
2018-09-07 13:07:44
3014
1
原创 GridLayout使用
某天需要做个Win10开始页类似的色块样式的布局,就像下面这样: 某程序媛表示:so easy! GridLayout走起~ 下面就是当事程序媛“行云流水一气呵成挥洒自如笔走龙蛇...”一阵捯饬后的页面效果:&l...
2018-09-07 11:08:12
1671
转载 安卓按下Home键至手机桌面后,重新点开应用时无法进入退出时的页面
转自:https://blog.youkuaiyun.com/busjb/article/details/40891239 感谢博主分享!现象:当点击Home键至手机桌面,再次点击桌面图标无法进入退出时的页面。举例:注册账号时填写了一堆注册信息,按HOME键退回至桌面获取短信验证码后,再次点开APP,发现不是注册页,填写的注册信息全都不见了。原因:退至手机桌面后,清单文件中的默认页重新执行onC...
2018-08-29 17:48:09
1437
原创 ProgressBar 自定义样式
ProgressBar 默认样式很多时候是不满足项目需求的,简单粗暴点说,就是有些丑。下面展示一下自定义ProgressBar的过程: 首先,在styles.xml文件中添加你的自定义ProgressBar样式。@drawable/progressbar_h是一个自定义的进度条背景。<style name="MyProgressBar" parent="@android:...
2018-08-29 13:04:50
14204
原创 正则表达式使用举例
正则表达式在我们广大“程序猿”的开发生涯中使用频次还是较多的,比如手机号、邮箱格式检查、批量格式化类文件等。下面正文走起:目标样式: [Display(Name = "活动标题")] [StringLength(250)] public string Title { get; set; }期望结果: /...
2018-08-23 21:20:22
267
原创 ViewPager与WebView滑动冲突问题
当使用ViewPager来水平切换多个WebView控件,且WebView展示的网页中恰巧也存在水平滚动的page信息,则会出现一个常见的尴尬现象:ViewPager的水平滑动事件与网页中的水平滚动Page冲突啦~~~ 这可如何是好呢,在广大热心网友的分享中,发现一妙解-重写WebView的触摸事件: webview.setOnTouchListener(new View...
2018-08-23 20:46:57
1439
原创 RecyclerView不显示数据
一个阳光明媚晴空万里的上午,我悠哉游哉劈里啪啦的敲着代码,写完一个列表页面后,不以为意随随便便地运行调试,竟然不明所以毫无准备地发现——竟然没显示数据!!! 于是乎立马检查数据源,嗯,已经正确指定; 再试乎检查适配器,嗯,也正确初始化; 。。。 哎呀呀,怎么回事???然后本着跟你死磕到底的坚强意志,势必要把此BUG揪出来。。。N久N久后。。。本着...
2018-08-23 20:35:46
10150
原创 PullToRefreshRecyclerView下拉刷新无效
PullToRefreshRecyclerView是一个支持下拉刷新及上拉加载更多的控件,我平时开发一直用这个。But也会遇到莫名其妙的问题,今天就遇到了列表无法下拉的情况,而且不是所有列表都不能下拉。。。这是什么鬼!!!感慨无用,还是老老实实调试代码吧。 首先,我对比了这两个页面的不同之处,但是这俩继承的是同一个基类(PS:此刻内心是崩溃的,呵呵一笑之)。 其次,看...
2018-08-23 13:56:06
979
1
原创 AndroidStudio自定义Getter/Setter
我们在平时开发中经常会创建数据模型,AndroidStudio也提供给我们了默认的Getter及Setter方法,可以快速生成对应方法: 首先,我们看一下默认的Getter方法中是如何处理的,在窗口中使用快捷键可以看到程序如下:说明(PS:这是自己的一个理解,细节处说明不准确的地方还望见谅哈~): 下面我想获得一个能够显示为下图左边所示样式的Getter...
2018-07-25 11:06:35
901
原创 MongoVUE 几个常用查询命令
1、字段匹配举例:查询“_id”字段值为5980690eceab061b1613e594的数据。命令:{'_id':ObjectId('5980690eceab061b1613e594')} 2、显示指定字段举例:显示“_id”“tag”两个字段。命令: {_id:'',tag:''}查询结果: 3、字段包含举例:查询tag(数组)字段包含“家”的数据。命令: {'tag':{$regex:'...
2018-05-29 14:41:49
3116
原创 Xamarin WebView高度重置
在Xamarin中,WebView需要指定控件高度,或者包含在Grid中后,再指定Grid的高度,但是有时候页面需要我们实现ScrollView中包含WebView及其他布局,且WebView高度不可指定为固定高度。在踩了许多坑后,可通过以下方式实现: 首先,项目需要添加第三方控件“Xam.Plugin.WebView”的引用,这个webview可以方便的注入JS代码,如下图所示:注...
2018-05-22 14:15:00
826
原创 TextBox复制剪切问题
首先在布局中添加键盘监听,如下:<TextBox Keyboard.KeyDown="TextInput_PreviewKeyDown"/>然后再***.xaml.cs文件中实现监听处理规则:private bool keydown = false; private void TextInput_PreviewKeyDown(object sender, System....
2018-05-17 14:40:39
1756
原创 MasterDetailPage示例
前言:MasterDetailPage可以实现左侧滑出菜单,下面把Demo的关键代码调用展示出来:TabPage.xaml:实现底部Tab切换,多数应用都会用到这种效果。<?xml version="1.0" encoding="utf-8" ?><xf:BottomBarPage xmlns="http://xamarin.com/schemas/2014/forms" ...
2018-05-08 12:54:59
2225
原创 获得大写首字母
试用场景:联系人分组,文字简拼等。 在执行Encoding.GETEncoding("GBK")方法时,安卓版会出现如下错误信息(IOS一般不会出现): 解决方式:右键安卓项目,选择“属性”按钮,在“Android选项”栏目中选择“CJK”后保存,清理项目并重新运行即可。 /// <summary> /// 返回给定字符串的首字母 ///...
2018-04-12 16:51:54
534
原创 WPF-文件相关操作
一 文件下载 首先,添加RestSharp的引用。这里我已经引用了RestSharp,所以“安装”按钮不可点击。 有的附件(即文件)下载时需根据MediaID文件标识以及身份验证条件符合才能下载,以下为程序内容: /// <summary> /// 获取图片保存到本地并返回本地地址 /// </summary> /...
2018-04-10 17:53:54
1865
原创 Xamarin深坑集锦
1 图片无法引用问题现象:图片明明已经放入安卓及IOS的资源目录下,其他图片可以用,只有个别图片无法引用。问题原因:有时直接复制进来的资源文件没有指定生成操作(偶然事件),导致程序编译时找不到目标文件。解决方式:右键目标图片查看属性,安卓文件则在“生成操作”栏目选择“AndroidResource”,IOS则选择“BundleResource”,然后重新生成解决方案。(有时重新生成解决方案后仍不能...
2018-04-09 14:39:44
4613
原创 Xamarin新手-项目创建四
一 、新建列表页1.1 使用列表控件 在空白页面的布局文件(.xaml)中添加ListView控件,并定义列表项Item样式。 程序说明:下面简单说明几个用到的ListView的属性字段 RowHeight:属性指定行高,一般不直接指定行高,通过 HasUnevenRows="True"可让ListView的行高根据Item内容自适应。 SeparatorColor:属性指...
2018-04-09 14:28:01
453
原创 Xamarin新手-项目创建三
一、新建Tab切换页1.1 添加依赖 通过NuGet程序包添加依赖程序。右键项目名称,点击“管理NuGet程序包”。搜索框架ThriveGmbH.BottomNavigationBar.XF并安装。(截图中圈出的位置处会有一个下载按钮,由于当前已经下载,所以会显示叉号)1.2 新建Tab切换页 首先,新建Tab切换页,这里新建三个空白页面,可在底部切换“首页”、“通知”、“我的”等。 ...
2018-04-03 15:50:38
632
原创 Xamarin新手-项目创建二
一、登录页添加1.1 新建空白页面 选中Views目录并右键选择“添加”--> “新建页”。这里以登录页为例,选择新建空白页并修改名称(以下以LoginPage为例)。 新建成功后,会自动生成三个相互对应的文件:布局文件(***.xmal)、页面文件(***.xmal.cs)、模型文件(***ViewModel.cs),如下图所示:1.2 自定义控件 有的时候,平台自带的...
2018-04-03 14:40:29
510
1
原创 Xamarin新手-项目创建一
附注:以下项目创建的基础是在你已经搭建好Xamarin工作环境。一、创建项目1.1 新建Prism项目 Prism插件安装成功后,新建项目时,会有“Prism”选项。按下图所示创建空白APP,并根据需求填写项目名称及保存路径。1.2 选择Container 进入项目时,选择“Unity”类型。1.3 使用Prism方式与使用默认方式项目结构对比1.4 项目运行效果结语:上面就是通过Xa...
2018-04-03 13:37:55
821
转载 Android7.0关于PopWindow的问题Android7.0 PopupWindow的兼容问题 Android7.0 中对 PopupWindow 这个常用的控件又做了一些改动,修复了以前
Android7.0 PopupWindow的兼容问题 Android7.0 中对 PopupWindow 这个常用的控件又做了一些改动,修复了以前遗留的一些问题的同时貌似又引入了一些问题,本文通过在7.0设备上实测并且结合源码分析,带你了解关于 PopupWindow 的相关改动。 Android7.0 中下面两个问题解决了,这里强调一下,不是说从 Android7.0 开始
2017-04-10 12:05:19
487
转载 Android内存优化(使用SparseArray和ArrayMap代替HashMap)
在Android开发时,我们使用的大部分都是Java的api,比如HashMap这个api,使用率非常高,但是对于Android这种对内存非常敏感的移动平台,很多时候使用一些java的api并不能达到更好的性能,相反反而更消耗内存,所以针对Android这种移动平台,也推出了更符合自己的api,比如SparseArray、ArrayMap用来代替HashMap在有些情况下能带来更好的性能提升。
2017-03-10 09:12:49
160
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人