- 博客(47)
- 资源 (2)
- 收藏
- 关注
原创 Flutter 扩展函数项目实用之封装SizedBox
【代码】Flutter 扩展函数项目实用之封装SizedBox,主要目的或作用是用来简化代码。
2023-07-29 17:29:44
1172
原创 小米隐私合规检测之违规收集IP地址
近一段时间,小米应用市场率先进行了比较严格的隐私合规检测,检测未通过的应用面临着下架风险,我们的APP在面对隐私政策检测时,被打回了很多次,每次小米应用市场会发一个日志文本让我们自检。一般来说这个日志有应用内相关的代码自我还是比较好修复的,如果引用第三方sdk的功能出现问题也可联系相关提供者,大都可用升级sdk的方式来解决,所以我们以这种形式解决大部分问题,但最后检测还是不通过,返回的日志还有一项内容,大致如下:违规收集IP地址:发生时间 :2022-05-12 09:18:11 945 索引..
2022-05-20 17:19:35
1902
原创 Android:Json数据转换成Map
本文利用Gson来做实现,先导入:implementation 'com.google.code.gson:gson:2.8.6'主要利用的是JsonObject里的entrySet()方法,相关Demo代码如下:import com.google.gson.Gson;import com.google.gson.JsonElement;import com.google.gson.JsonObject;import java.util.HashMap;import java.ut
2021-02-26 20:56:58
1960
原创 利用Glide为固定宽高的ImageView设置圆角图片
在开发项目时,列表的描述图片大多会以一种固定宽高的模式出现,有时应需求我们会将ImageView的scaleType属性设置为centerCrop,如果需要展示圆角图片,我们可以利用Glide来作实现。实现类GlideActivity,基础代码如下:import android.os.Bundle;import android.widget.ImageView;import androidx.appcompat.app.AppCompatActivity;import com.bumpte
2020-11-20 15:27:43
990
原创 Android11:resolveActivity返回null
在Android11上使用打开相册的意图,发现调不起相关应用,相关代码如下: private void openAlbum() { Intent intent = new Intent(Intent.ACTION_PICK, null); intent.setType("image/*"); if (intent.resolveActivity(getPackageManager()) != null) startActiv
2020-10-26 15:43:54
3047
1
原创 友盟推送 红米手机收不到推送的问题
在集成友盟推送时,需要集成各大厂商通道来提升推送的到达率,在集成小米厂商通道时,文档有段代码为:MiPushRegistar.register(final Context context, final String XIAOMI_ID, final String XIAOMI_KEY);而这段代码现在最新的版本却存在一个问题,点击方法进去会看到一段代码: public static boolean checkDevice(Context context) { boolea
2020-07-20 11:23:58
2339
1
原创 Android点亮屏幕功能
应用在涉及音视频播放功能时可能需要点亮屏幕,此文把点亮屏幕相关工具类和使用类的代码贴出来,若有问题欢迎指正!工具类:WakeLockUtil,相关代码如下:public class WakeLockUtil { /** * 点亮屏幕 * * @param timeout The timeout after which to release the wake lock, in milliseconds. */ @Nullable pu
2020-07-03 16:43:01
3730
1
原创 Android WebView加载完成的监听
在项目里有时会需要监听WebView加载完成的状态,可能有人会使用WebViewClient里onPageFinished这个方法来监听,可是这个官方的方法到现在还是不稳定,有些能监听到,有些则不能。本人做法是使用WebChromeClient里onProgressChanged这个方法来监听,相关代码如下:public class WebViewUtil { @SuppressLint("SetJavaScriptEnabled") public static void loa
2020-06-18 16:55:02
5281
原创 LinearLayout子控件实现底部对齐功能
此功能主要利用LinearLayout里面的属性gravity="bottom"来实现,相关子控件包括ImageView,EditText及TextView,需要注意的对TextView要做特殊处理,就是在其外层再包裹一层LinearLayout,相关代码如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2020-06-08 18:01:56
3153
原创 AndroidRuntime: FATAL EXCEPTION: DplusCacheApi
在部分android10版本的手机上发现应用在每天首次打开的时候都会闪退一次,再次打开才能正常使用,找到的错误信息如下:AndroidRuntime: FATAL EXCEPTION: DplusCacheApi Process: com.chiigu.shake, PID: 14759 java.lang.NullPointerException: Attempt to invoke virtual method 'org.json.JSONObject org.json.JSONO
2020-05-27 18:03:48
1468
3
原创 Android Studio利用BuildConfig获取版本名和版本号
以前我们基本都是利用PackageManager来获取版本名和版本号,在Android Studio下我们可以利用BuildConfig来获取版本名和版本号,代码如下: /** * 获取版本名 */ public static String getVersionName() { return BuildConfig.VERSION_NAME; } /** * 获取版本号 */ public static i
2020-05-14 17:47:57
3907
原创 Android获取剪切板内容
项目里有一个功能要求获取剪切板上的内容,原代码如下:@Nullablepublic static String getClipboardContentTest(Context context) { ClipboardManager cm = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);...
2020-03-17 16:41:58
8381
3
原创 Android获取软键盘高度
本文获取软键盘高度利用View里getWindowVisibleDisplayFrame (Rect outRect)方法,根据当软键盘弹出时所影响的outRect底部值bottom的偏差值来判断,现以为使bottom产生变化的有软键盘,虚拟导航键2种,所以区分此2种变化即可获取软键盘的高度,这里用了一个估计值,就是大于屏幕高度的1/4就以为是软键盘高度。取1/4这个比例主要还是考虑兼容全面屏,具...
2019-12-18 16:00:17
1041
原创 java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 10 \{([^}]*)}
在Android中若正则表达式如下:Pattern p = Pattern.compile("\\{([^}]*)}");运行时则会崩溃,崩溃信息如标题:Caused by: java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 10 \{([^}]*)}解决方案为则...
2019-06-22 11:39:07
5803
原创 java.lang.IllegalArgumentException: View=PhoneWindow$DecorView{...} not attached to window manager
针对此问题本文主要是抛出解决方案,定义一个基类BaseDialog,其他Dialog继承此基类,BaseDialog代码如下:import android.app.Activity;import android.app.Dialog;import android.arch.lifecycle.Lifecycle;import android.arch.lifecycle.Lifecyc...
2018-11-05 11:39:48
3183
1
原创 Android直播聊天之图文混排式TextView
在看某些直播时,会发现我们发送的聊天信息呈现的样式还是很利用空间的,此文做了相关界面的实现,截图如下:Activity里实现主要涉及自定义Drawable和自定义DrawableSpan,并配合SpannableStringBuilder,代码如下:TextView textView = findViewById(R.id.textView);String userFlag = "...
2018-10-24 11:59:59
2307
原创 Android带分隔符的输入手机号码的EditText
当用户输入手机号码时,有些应用为了界面更加优美,要求输入的手机号带上分隔符,一般为344型的手机号码,本文为封装了带分隔符的输入手机号码的自定义SeparatorPhoneEditText。运行效果截图如下: 代码如下,注释在代码里:import android.content.Context;import android.support.v7.widget.AppCompat...
2018-10-04 17:21:48
1661
原创 Android 9 Pie:http及https的网络连接问题
最近在将应用运行在Android 9设备上时,发现http网络请求没有任何的响应。官方资料在框架安全性变更提及,地址为:https://developer.android.google.cn/about/versions/pie/android-9.0-changes-28默认情况下启用网络传输层安全协议 (TLS)如果您的应用以 Android 9 或更高版本为目标平台,则默认情况下...
2018-09-18 17:15:08
14844
2
原创 Android9.0_P:ClassNotFoundException: Didn't find class "org.apache.http.conn.scheme.SchemeRegistry"
出现此问题的机型:小米 MIX 2S,系统版本为:9。解决方案见官方文档:https://developer.android.google.cn/about/versions/pie/android-9.0-changes-28Apache HTTP 客户端弃用在 Android 6.0 中,我们取消了对 Apache HTTP 客户端的支持。 从 Android 9 开始,默认情况下...
2018-09-18 11:55:22
15451
7
原创 Fragment重叠问题简单解决方案
在项目中,遇到了fragment重叠的问题,具体是Activity里面有4个fragment,是通过FragmentTransaction的add方法进来的,并通过其show和hide控制子fragment的展示和隐藏。 对于这个重叠问题,搜索到相关资料的说法就是App被放置到后台(用户按下Home键或开机键等),fragment所在Activity有可能被销毁,Ac...
2018-09-14 17:04:39
1612
原创 Android Paging library的本地数据Demo
分页库属于架构组件(Architecture Components)的一部分,配合RecyclerView使用,主要用来实现无感分页加载。官方文档链接为:https://developer.android.google.cn/topic/libraries/architecture/paging本文参照官方文档来做一个简单的实现,主要分以下几步:1、导库:def support_...
2018-08-09 14:53:10
720
原创 Android API28:All com.android.support libraries must use the exact same version specification
最近将sdk版本下载至最新的API 28,将compileSdkVersion改为28后,并将官方支持库改为相应版本时:def support_version = "28.0.0-alpha3"implementation "com.android.support:appcompat-v7:$support_version"提示有错误,错误详情为:All com.android.support ...
2018-07-03 16:53:14
1989
原创 纯色图片颜色渐变动画
纯色图片颜色渐变动画的实现,主要有两点:1、纯色图片颜色的改变,使用的方法为ImageView里的setColorFilter(intcolor);2、动画使用ValueAnimator,配合相应的颜色TypeEvalutor。代码实现如下:public class ImageActivity extends AppCompatActivity { private
2017-12-22 10:25:27
1316
1
原创 WebView去除系统植入广告
在开发项目时用WebView加载网页,开启JS功能后,发现在手机上打开网页上偶尔会弹出一些小广告。我的解决方案为修改userAgent,处理后发现小广告不见了相关部分关键代码如下:private WebView webView;String userAgent = webView.getSettings().getUserAgentString();if (!Text
2017-12-15 11:51:41
1912
2
原创 微信小程序标签栏tabBar
微信小程序主页面大部分都定义了底部标签栏,定义一个标签栏只需要在app.json里做声明即可,代码如下:"tabBar": { "color": "black", "selectedColor": "red", "borderStyle": "black", "backgroundColor": "gray", "position": "bot
2017-01-13 15:40:12
18288
原创 微信小程序的左右布局
微信小程序的在同一行有一个控件放在左边,另一个控件放在右边,可能利用来wxss作实现;demo.wxml代码如下: 左边的文本 右边的文本demo.wxss代码如下:.container { display: flex; flex-direction: row; justify-content: space-between; align-it
2017-01-11 14:12:17
51040
原创 关于build方法数超过 64K 的应用的问题
首先推荐android官方的中文网站,网址为https://developer.android.google.cn然后说下我的问题,最近在构建打包APK的过程出现了打包失败的提示:Error:The number of method references in a .dex file cannot exceed 64K.Learn how to resolve this iss
2017-01-03 10:46:31
522
原创 带进度条的通知栏Notification
在版本迭代时下载新版本的时候有些APP展示带进度条的通知栏,对用户而言感觉更为友好,以下是在Activity里的简单实现.截图如下:代码如下:import android.app.Notification;import android.app.NotificationManager;import android.os.Bundle;import andro
2016-12-26 17:18:24
1239
1
原创 关于PopupWindow的BadTokenException及IllegalStateException
关于PopupWindow的弹窗,若在Activity的onCreate方法或Fragment的onActivityCreated方法里立即调用show PopWindow方法时会出现一个异常:Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not va
2016-12-13 15:59:09
1909
原创 android7.0关于TelephonyManager.getDeviceId()返回null的问题
在android7.0的系统下发现TelephonyManager.getDeviceId()在权限允许的情况下取得返回值也为null,解决方法如下:public static String getDeviceId(Context context) { String id; //android.telephony.TelephonyManager Telephony
2016-11-05 11:13:25
20247
原创 当服务端为PHP时Android端的RSA加密
这是实际项目里封装的一个工具类,代码如下:import android.util.Base64;import java.security.KeyFactory;import java.security.PublicKey;import java.security.spec.X509EncodedKeySpec;import javax.crypto.Cipher;pub
2016-08-30 16:41:17
873
原创 TextView展示Html内可点击图片
在使用Html.fromHtml(String source)时如果源字符中包含图片里并不会展示出来,需要我们另作处理,本文并参照LinkMovementMethod增加图片点击事件,切图如下:代码如下,如有不对之处欢迎指正import android.graphics.drawable.Drawable;import android.os.Bundle;import
2016-08-26 14:39:11
1048
原创 ViewPager滑动跟随的指示器
比较简单的一个滑动跟随的指示器,本文只是实现了标签的宽度不超过屏幕宽度的情况,根据标签的文字宽度来调节指示器的宽度,效果图如下:指示器的主要实现是一个自定义的View,代码如下:public class TabView extends View { private String[] names; private float tabHeight; priv
2016-08-24 17:38:26
1294
1
原创 android自定义字体样式
关于assets的位置,我这里提一下,android studio切换到Project模式,依次点开app\src\main,点击main文件夹右键新建文件夹assets就OK了关键代码就是:Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/roboto.ttf");textView.setTypeface(typeface);需要注意的是:fonts前面是不需要/的,如果写成"/fonts/roboto.t
2016-07-15 10:22:18
857
原创 欢迎引导页面的滑动进入
在用户首次进入或升级时在欢迎页面一般情况下都会加入一个引导的页面,当滑动到最后一个页面时点击或向右滑动时就能进入主页面,实现代码如下:public class WelcomeActivity extends Activity { private final int[] imageIDs = new int[]{R.mipmap.guide_image_01, R.mipmap.g
2016-07-13 11:27:12
849
原创 使用getLocationInWindow或getLocationOnScreen获得View在屏幕中的坐标
在View提供了两个方法这样的方法,我们可以利用它们来获得View在屏幕中的坐标:/** * <p>Computes the coordinates of this view in its window. The argument * must be an array of two integers. After the method returns, the array ...
2016-07-12 10:15:54
5873
2
原创 三角形的自定义View
在项目的弹窗页有倒三角形指示的设计图,如下:最方便的做法就是要求切一张倒三角的图出来,我这里用的代码实现方法,先自定义一个三角形TriangleView,代码如下:import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.
2016-06-27 10:18:45
2084
原创 修改TextView中部分文字颜色的方法
在实际项目中有一张关于回复的设计图如下:里面文本颜色是有变化的,因此封装一个修改TextView中部分文字颜色的方法,如下:public static SpannableStringBuilder getSpannable(String reply, String content, int colorID) { SpannableStringBuilder builder
2016-06-22 10:31:43
794
原创 shape的对应的代码写法
在界面设置时,我们很多时候需要给控件加上圆角或边颜色的效果,一般来说我们可以设置其background为一个shape类型的drawable即可实现,类似代码如下:LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.co
2016-06-04 09:38:28
3325
android system webview_V67
2018-08-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人