
android
qugengting
这个作者很懒,什么都没留下…
展开
-
静态集成腾讯TBS文件浏览能力
一般地,如果没有特殊需求,要使用文件浏览服务只需要调用本文最开始的TBS接口就行了,但是,我们的产品要求不允许调用第三方APP打开,更不允许界面右上角能点击进入分享弹窗。它现在还是免费,但是依据官方文档操作确实有不稳定的问题,内核下发常常很慢,这是不能容忍的。之前我看过里面的内容,大致意思是原来的TBS文件浏览能力不稳定,为了更好地提供定制需求,TBS团队专门剥离了原来的文件浏览能力并进行优化,生成一款新产品,然后我们咨询了一下,价格不菲,于是我们产品经理让我再想想办法。点击进去,咦咦咦,怎么内容没有了。.原创 2022-08-08 11:13:22 · 4274 阅读 · 5 评论 -
kotlin继承java类的判空问题
kotlin和java混用的问题原创 2022-06-29 10:24:37 · 1851 阅读 · 2 评论 -
android端集成FTP文件下载功能
我使用的是ftp4j的SDK,非常轻巧易用,可以轻松的实现类似文件管理器的功能,但我的项目需求只要求下载,所以就只实现了下载功能。官方地址:http://www.sauronsoftware.it/projects/ftp4j/manual.php文档非常简明易懂:直接贴上我的代码:public class FTPUtils { public interface Callback { void onSuccess(String filePath);原创 2022-01-15 14:11:54 · 1699 阅读 · 1 评论 -
华为OBS SDK在android项目上集成失败的处理
按华为OBS官网指导在android项目gradle文件配置远程仓库,报错了,看了错误日志是log4j什么的需要注解,放弃改变思路到github上下载最新的jar包,下载解压下拿到esdk-obs-java-3.21.4.jar放入项目,编译时又报错了:Program type already present: okhttp3.internal.http.RetryAndFollowUpIntercep原来是项目已经有okhttp3了,和jar包里的冲突解决方法很简单,把jar包当中的okh原创 2021-12-16 16:58:22 · 2217 阅读 · 0 评论 -
android使用JavaMail开发邮箱APP
JavaMail是大名鼎鼎的Oracle公司开发的电子邮件开发框架,如果使用JAVA语言开发邮箱应用基本都绕不开它。在Android端开发邮箱APP的过程中,我遇到了不少问题并一一解决,这里列举了一些做为备忘录,后续开发差不多了我会把源码全部放在github上,以便一起学习讨论。1、邮箱服务器连接失败2、获取邮件内容乱码3、附件名称乱码4、附件下载速度慢5、邮件正文包含图片时,对图片的处理(重点难点)6、对正文图片和附件的拆分(难点)(可根据Content-ID参数判断)7、对邮原创 2021-02-26 15:09:35 · 8934 阅读 · 11 评论 -
android属性动画最简单使用
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(view, "translationY", 0f, 200f);objectAnimator.setDuration(1000);objectAnimator.start();"translationY"表示在Y轴的位移,其他的还有"rotation"以及"alpha",其中al...原创 2018-12-05 11:04:34 · 289 阅读 · 0 评论 -
android handler正确写法
为避免内存泄漏,正确写法应该是写个内部静态类+弱引用: private static class MyHandler extends Handler { private WeakReference<LoginActivity> activityWeakReference; public MyHandler(LoginAct...原创 2018-12-13 17:18:19 · 1244 阅读 · 0 评论 -
android colorPrimary、colorPrimaryDark和colorAccent都代表什么意思
创建新的项目,androidstudio都会默认为我们新建一个主题的style,里面包含这三种颜色属性,大抵如此: <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Cu...原创 2018-12-10 16:05:20 · 1777 阅读 · 0 评论 -
android getDrawable的正确方式
ContextCompat.getDrawable(mContext, R.drawable.icon);直接用getDrawable必须设置minSdkVersion >= 21才行,否则方法不存在原创 2018-12-17 10:32:14 · 11064 阅读 · 1 评论 -
android中去掉json转义字符
一个json字符串从h5传来再经过一个json包装要传回去,就会出现如下情况:"items":"{\"clock1551332255301\":\"{\\\"time\\\":1551332255301,\\\"type\\\":1,\\\"addr\\\":\\\"广场\\\",\\\"userName\\\":\\\"0005589原创 2019-02-28 14:53:31 · 7342 阅读 · 1 评论 -
如何查看手机cpu是32位还是64位
adb shell getprop ro.product.cpu.abi原创 2019-03-05 17:01:38 · 18691 阅读 · 0 评论 -
android控件点击事件第一次无效,第二次才响应 / 设置EditText默认不弹出软键盘
一个以LinearLayout为Item的点击事件在第一次点击时无效,第二次点击之后才会响应。以为是LinearLayout或是Adapter的问题,最后发现是因为焦点问题,第一次点击实际上是获取焦点,第二次点击才会响应点击事件。问题所在:在LinearLayout里面加了如下属性:android:focusable="true"android:focusableInTouch...原创 2019-03-12 16:30:05 · 3145 阅读 · 2 评论 -
android横竖屏切换
非重启Activity:android:configChanges="keyboardHidden|orientation|screenSize" @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newCo...原创 2019-03-25 17:36:41 · 204 阅读 · 0 评论 -
android获取控件的宽高度
ViewTreeObserver vto = view.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobal...原创 2018-12-05 10:54:47 · 173 阅读 · 0 评论 -
RecyclerView的宽度不能占满父布局解决方法
直接贴代码,简单粗暴:LinearLayoutManager layoutManager = new LinearLayoutManager(context) { @Override public RecyclerView.LayoutParams generateDefaultLayoutParams() { ...原创 2018-11-15 18:05:10 · 1756 阅读 · 0 评论 -
Retrofit网络请求报错java.lang.NumberFormatException: Expected an int but was...
完整报错是:com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected an int but was 154036037000000 at line 66 column 27 path $.org[12].id错误原因:明显地,这里已经给足了提示,org对象数组中的id属性,原来应该是int类型,...原创 2018-11-02 17:20:50 · 4227 阅读 · 1 评论 -
EditText被软键盘遮挡的原因二
发现当Activity初始化时加入代码getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);EditText无论怎么改都无法自动顶上去!原创 2018-02-03 18:32:02 · 264 阅读 · 0 评论 -
android Glide图片框架最全使用说明
概述:本文的所有内容几乎全部来自郭神的Glide解析系列博客,郭神的水平是我非常敬佩的,在浏览完该系列博客之后,有了想把Glide用法汇总起来方便查阅的想法。原系列博客包括很多源码解析,篇幅比较长,我这里只总结使用方法,想深入了解原理的请阅读郭神的博客。郭神的解析是针对Glide3.7的版本,该版本已经非常成熟和稳定,可以作为长期使用的版本,所以以下所有的使用说明都是针对该版本的。...原创 2018-03-08 15:06:37 · 836 阅读 · 0 评论 -
android加载大图推荐框架LargeImageView及所遇问题——部分机型图片模糊
一般因为内存有限,如果在android上不加处理地在ImageView上加载大图,非常容易造成卡顿甚至OOM,所以常见的框架如glide都会自动对图片进行压缩,然后再加载。但有时候这并不是我们的目的,当我们想看高清图片时必须获取到原图。这里推荐使用LargeImageView框架,它支持手势缩放,而且还有比另一个有名的框架subsampling-scale-image-view对比优势的地...原创 2018-03-05 22:41:25 · 3547 阅读 · 0 评论 -
android各种路径集合
Environment.getDataDirectory() = /dataEnvironment.getDownloadCacheDirectory() = /cacheEnvironment.getExternalStorageDirectory() = /mnt/sdcardEnvironment.getExternalStoragePublicDirectory("test") = ...原创 2018-05-03 17:53:50 · 475 阅读 · 0 评论 -
ksoap2 org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT --uuid:
ksoap2调用webservice接口的时候报的错,网上找了很久的答案没找到,后来自己用SoapUI测试工具测了下,发现返回的数据居然是这样子的:HTTP/1.1 200 OKServer: Apache-Coyote/1.1Content-Type: multipart/related; type="application/xop+xml"; boundary="uuid:8fe57e81...原创 2018-05-03 18:06:29 · 1232 阅读 · 0 评论 -
butterknife无效的问题解决
在androidstudio3.0以上版本中,butterknife的导入是这样的dependencies { compile 'com.jakewharton:butterknife:8.4.0' annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'}不需要在project的根build.gradle再...原创 2018-05-11 16:43:38 · 4707 阅读 · 0 评论 -
android动态修改drawable颜色及大小
如果没有美工自己又不会PS,或者为了减少图片资源,可以采取动态修改drawable的方式实现按钮点击效果,首先,准备一份drawable图片资源,然后调用以下方法即可: public Drawable tintDrawable(Drawable drawable, ColorStateList colors) { final Drawable wrappedDrawable ...原创 2018-05-22 09:27:11 · 16492 阅读 · 0 评论 -
android判断应用是否回到桌面的两种方法
有时候需要判断APP是否被切换到后台,然后做相应处理,如显示悬浮窗等。怎么判断呢,有两种方法:第一种: /** * 判断当前界面是否是桌面 */ private boolean isHome() { String packageName = getTopApp(this); return getHomes().contains(pa...原创 2018-06-07 10:57:27 · 7960 阅读 · 0 评论 -
EventBus2.4的一个坑
一个时间跨度比较长的项目,用的EventBus的版本是2.4的,也不改了,不知道更高版本会不会有这个问题。一般的,在public void onEventMainThread(...)方法里面响应EventBus的post方法调用,今天遇到了一个坑。我在方法里发送广播,但就是怎么都发不出去,检查广播调用,写法没有问题。后来我把这部分代码拿到onCreate方法里面去,执行就崩溃了。查看崩溃日志发现...原创 2018-06-22 17:42:42 · 590 阅读 · 0 评论 -
SQLite查询区分大小写
android默认数据库是SQLite,使用查询语句默认不区分大小写,可能导致查询结果字符串匹配出错,PRAGMA命令是SQLite的特殊命令,使用此命令可以区分大小写:String sql = "PRAGMA case_sensitive_like = 1"//或者是true,0或false的情况下不区分大小写mDataBase.execSQL(sql);参考资料:SQLite PRAGMA ...原创 2018-07-09 09:08:32 · 1948 阅读 · 0 评论 -
SQLite(或LitePal)查询速度很慢原因分析
android数据库查询,用的是郭神的数据库框架LitePal,前期测试阶段数据量少没发现问题,app正式上线后由于数据量比较大,导致从数据库取数据非常慢,取20条数据就要十几秒。排查后发现是这样的:我的数据封装类A:public class Form extends DataSupport { private String account; private String...原创 2018-07-19 17:28:25 · 5241 阅读 · 0 评论 -
android弹出和关闭软键盘
之前的写法有问题,这里记下免得以后再用错: /** * 显示键盘 * * @param et 输入焦点 */ public void showInput(final EditText et) { et.requestFocus(); InputMethodManager imm = (InputMethod...原创 2018-08-21 16:33:59 · 44881 阅读 · 8 评论 -
EditText被软键盘遮挡的奇葩原因
今天布局EditText的时候遇到一个奇怪的问题,记录下供参考。android:gravity="center"android:inputType="number"如上,当gravity取值为center同时inputType取值不为none的时候,该EditText会遇到一个奇怪的问题,第一次获取焦点的时候可以正常往上推,但是之后就会被软键盘遮挡,也就是整个界面没有变化。解决办法是修改原创 2018-01-30 23:09:02 · 360 阅读 · 0 评论