从Android Studio迁移到IntelliJ,从Gradle2升级到Gradle5.4.1,JNI NDK的配置更新

IntelliJ IDEA,是java编程语言开发的集成环境,在业界被公认为最好的java开发工具之一。参考其官网:https://www.jetbrains.com/idea/。

其实不只是Java,同家公司的Android Studio、PHPStorm、WebStorm、PyCharm、RubyMine的功能,它都有,不就是插件嘛!所以,最近把Android Studio、PHPStorm、WebStorm、PyStorm全部干掉了,所有项目都用IntelliJ来开发。

因为IntelliJ的各种插件都比较新,所以,顺带把Android的各种编译工具和环境更新到相对新的版本,也就有了如下采坑总结,记录一下。

1.gradle.properties

2.根目录下的:build.gradle

3.library目录下的:build.gradle

4.子项目的build.gradle

5.对应的android.mk

6.对应的Application.mk

参考:

https://developer.android.com/ndk/guides/android_mk

https://www.cnblogs.com/webor2006/p/9999063.html

http://wuxiaolong.me/2017/12/27/AndroidNDK/

Android的webview加载H5网络视频时黑屏(只有声音,没有画面)的解决办法大全!

直接进入正题,保你在WebView打开H5的视频不黑屏!

继续阅读“Android的webview加载H5网络视频时黑屏(只有声音,没有画面)的解决办法大全!”

Android安卓上用代码实现设置圆角radius的颜色背景

Android经常会使用shape来定制一些View的背景,可以修改View的背景颜色,形状等属性。一般情况下,shape都是在xml文件里面实现,比如:

继续阅读“Android安卓上用代码实现设置圆角radius的颜色背景”

android TextView autolink的用法——自动识别电话|网址|邮件

1. 通用的方法

textView.setAutoLinkMask(Linkify.ALL);
或者在xml布局文件中 android:autoLink=”all”

2. 带正则式的识别方法,超过五位数字默认为手机号

Pattern pattern = Pattern.compile(“\\d{5,}”);
Linkify.addLinks(mTv_kuaibao, pattern, “tel:”);
最后:防止点击事件冲突,在TextView的根部局中加入
android:descendantFocusability=”blocksDescendants”

3. 只自动识别电话

android:autoLink=”phone”

4. 只自动识别网址

android:autoLink=”web”

android postDelayed

这是一种可以创建多线程消息的函数
使用方法:
1. 首先创建一个Handler对象
Handler handler=new Handler();

2. 然后创建一个Runnable对象
Runnable runnable=new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
//要做的事情,这里再次调用此Runnable对象,以实现每两秒实现一次的定时器操作
handler.postDelayed(this, 2000);
}
};

3. 使用PostDelayed方法,两秒后调用此Runnable对象
handler.postDelayed(runnable, 2000);
实际上也就实现了一个2s的一个定时器

4. 如果想要关闭此定时器,可以这样操作
handler.removeCallbacks(runnable);

当然,你也可以做一个闹钟提醒延时的函数试试,比如,先用MediaPlayer播放闹钟声音,
如果不想起,被停止播放之后,下次就5分钟后再播放,再被停止的话,下次就4分钟后播放,
………………
只要更改延时的时间就可以实现了,用一个static对象的话会比较容易操作。

是可以异步效果,但Runnable的执行是在Handler对象所在的线程
如果其所在的线程是UI线程的话,Runnable中还是不能执行耗时操作,不然会ANR
前几天我们自己的设备很卡,卡到跳转界面都需要不到1秒的时间,我就把跳转的动作放在Runnable里边,外边加上弹出进度提示框

注:举例说明

Android setTextSize

在帮TextView控件设置大小的时候,发现和在XML中用PX设置的不一样,原因是setTextSize()默认的单位是sp,可以用另一个设置字体大小的方法:

setTextSize(int unit, int size)

第一个参数可设置如下静态变量:

TypedValue.COMPLEX_UNIT_PX : Pixels
TypedValue.COMPLEX_UNIT_SP : Scaled Pixels
TypedValue.COMPLEX_UNIT_DIP : Device Independent Pixels

Android安卓平台上网页WebView中全屏横屏播放html5视频的实现

可以实现在WebView中全屏横屏播放html5视频,但是没办法播放的时候直接进入全屏,因为监听不到播放事件。如果有兴趣可以考虑使用点击事件的监听来曲线救国。

继续阅读“Android安卓平台上网页WebView中全屏横屏播放html5视频的实现”

Android分享对话框实现,Android7.0之后状态栏着色解决——主题(Theme)的正确玩法

现象

根本原因是BaseActivity基类中,进行了状态栏着色,代码如下: 继续阅读“Android分享对话框实现,Android7.0之后状态栏着色解决——主题(Theme)的正确玩法”