自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 android 系统动画设置关闭,还要显示动画的设置

再系统的开发者模式里,可以关闭动画,但是你的项目就要显示动画,不跟系统走,

2023-05-19 14:25:33 461

原创 Android 线程问题

1.设置子线程的优先级必须在当前子线程中设置 Thread thread = new Thread(){ @Override public void run(){ Process.setThreadPriority(Process.THREAD_PRIORITY_LOWEST); } }; thread.start();2.获取线程id使用android.os.Process.

2021-06-22 13:59:24 272

原创 申请Menifest中声明的全部权限

private fun requestAllPermission () { try { val packageInfo = packageManager .getPackageInfo(packageName, PackageManager.GET_PERMISSIONS) val permissions = packageInfo.requestedPermissions ...

2021-05-20 15:04:29 134

原创 gradle插件使用javassist修改父类不成功的问题

在android studio中写gradle插件,使用javassist修改一个类的父类时,使用常规的方法 CtClass rejectedActivity = pool.get(baseActivityClassName); rejectedActivity .setSuperclass(newSuperActivityClass);不起作用,然后加上使用replaceClassName方法才行,示例如下: String oldSuperClass = rejectedActiv

2021-04-05 13:10:40 382

原创 “Enable advanced profiling“引发的Okhttp发送请求异常

1.在使用okhttp发请求是,总是报close异常,debug,发现OkHttpClient的networkInterceptors多了个 OkHttp3Interceptor (com.android.tools.profiler.agent.okhttp),google了一下,才知道,是因为在Edit Configurations中开启了“Enable advanced profiling”,去调这个设置就可以了。Edit Configurations -> Profiling, and d

2021-04-02 19:59:36 241

原创 androidstudio R8编译增加throw null

在一个项目中,突然发现编译release包之后,安装启动报Application构造方法抛空指针异常,反编译dex,确实发现在Application的构造方法和所有生命周期方法的最后都加了throw null,因为配置了 buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'pro

2021-03-10 09:36:45 505

原创 给seekbar换颜色

fun customProgressBar(accentColor:Int) { var progressDrawable = context.resources.getDrawable(R.drawable.lib_video_preview_progress_bg) as LayerDrawable progressDrawable.colorFilter = PorterDuffColorFilter(accentColor, PorterDuff.Mode.S...

2021-03-03 13:33:29 248

原创 Android 全屏和取消全屏

// 全屏。包括隐藏虚拟导航栏 open fun fullScreen(){ val uiOptions = (//0x00000008 or View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_STABLE

2021-03-02 16:06:42 1249

原创 Android handler.removeMessages(0);会取消handler.post的消息

当调用handler.post()或者handler.postDelayed方法时,追踪源码,实际上public final boolean postDelayed(Runnable r, long delayMillis){ // 实际上调用的还是sendMessage return sendMessageDelayed(getPostMessage(r), delayMillis);}// 获取Message,此时Message的What=0private static Me

2021-02-20 10:11:01 766

原创 Android利用Looper机制实现在子线程中依次执行耗时任务

在做自定义相册时,需要获取视频文件的播放时间,利用以下方法获取:@JvmStatic fun getMediaTime(path: String?): Int { val mediaPlayer = MediaPlayer() try { mediaPlayer.setDataSource(path) mediaPlayer.prepare() var duration = mediaPlaye

2020-08-14 18:23:50 821

原创 Diaglog横向全屏

dialog想改变默认宽度,横向全屏,要在show之后,修改Attributes,其中getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));必不可少,不加此行,DecorView会有padding,横向一直不能铺满屏幕 Window window = getWindow(); WindowManager.LayoutParams lp = window.getAttributes(

2020-07-01 16:09:07 204

原创 Livedata建立observe时,抛Cannot add the same observer with different lifecycles的问题

如果一个activity,在onCreate的时候建立Livedata监听,当此activity启动两遍的时候,会抛出Cannot add the same observer with different lifecycles异常,原因是使用了lamda表达式public class MyActivity extends AppCompatActivity { public void onCreate(Bundle savedInstanceState) { super.onCr

2020-06-12 16:51:58 8105 2

原创 自定义键盘怎么避免预览特殊按键以及监听返回键的问题

继承了KeyboradView,写了一个自定义键盘,以dialog的形式弹出,解决两个问题1.使用DialogFragment,在onStart中,定义dialog的属性,使其像系统输入法一样的特性,即不获取焦点,可以点击下面的activity界面open class KeyboardDialog : BaseDialogFragment() { private var mContentView: View? = null; override fun onAttach(context:

2020-05-21 09:45:32 209

原创 java和kotlin的Builder模式的继承

在android开发过程中,经常会使用builder模式来设置属性,但是有时候会有存在继承关系,用以下方式解决:1.java双重继承 示例public class AlertDialog extends BaseDialog { protected BaseBuilder<Builder> mBuilder; protected void setBuilder(Ba...

2020-04-22 13:32:29 717

原创 android studio 自定义本地使用的Pmd 的gradle插件

1.在project 下新建目录 buildSrc,会自动生成.gradle文件夹.2.新建build.gradleapply plugin: 'java-library'//use groovy libraryapply plugin: 'groovy'sourceSets { main{ groovy{ srcDir 'src/main/g...

2020-03-27 09:31:04 625

原创 分析hprof文件

1.cmd 进入D:\AndroidSDK\platform-tools> 目录,下面有hprof-conv.exe,执行命令D:\AndroidSDK\platform-tools>hprof-conv memory-20191106T171841.hprof heap-converted.hprof把android格式的转为标准的hprof文件。然后执行jhat -J-X...

2020-03-26 19:22:22 2322

原创 DialogFragment 写 setRetainInstance(true);activity重建后不能保持弹出的原因

在DialogFragment 的子类中,调用 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 保存整个实例 setRetainInstance(true); }期望结果是 弹出dialog,在屏幕旋转后...

2020-01-08 15:31:54 826

原创 okhttp3.14.x 上传不存在的文件后,再上传文件400

增加NetworkInterceptor,如下/** * 解决在okhttp3的3.14.x版本,当上传不存在的文件时,再重新上传存在的文件,okhttp还复用上次的连接,但是 * 上次的连接中已经write了部分数据,此脏数据导致发生400错误 * * */public class RemoveDirtyConnIntercepter implements Interceptor ...

2019-12-30 18:31:11 401

原创 代码设置style

ContextThemeWrapper contextThcemeWrapper = new ContextThemeWrapper(getContext(),R.style.menu);TextView textView = new TextView(contextThcemeWrapper);//修改contextThcemeWrapper.setTheme(R.style.tes...

2019-08-28 14:13:00 453

原创 androidstudio 引用外部工程

1.引用外部module在 settings.gradle中添加project(':outer').projectDir = new File(settingsDir, '../../outer')include 中追加':outer'2.引用外部文件在build.gradle中添加sourceSets { main {

2017-12-15 14:42:41 1469

原创 android gradle makejar配置

task makeJar(type: Jar, dependsOn: ['compileReleaseJavaWithJavac']) { destinationDir = file('build/libs/jar/') appendix = "jar" // SDK的后缀名称 baseName = "sdkname" // SDK名称 version = 1.0

2017-12-15 14:41:26 2005

原创 .9图片设置不拉伸的区域被拉伸的问题

今天才发现,.9图片如果不放到对应相应级别的资源目录下,设置的不被拉伸的部分也会被拉伸,例如,.9图片放到drawable目录下,上面的图片是正常,下面的图片的透明边缘被拉伸 下图是.9图片的制作 如果把.9图片放到drawable-nodpi中,并当做背景图使用,则在layout的预览中会看不到上层的view,在真机中能看到,把.9图片放到当前真机对应的drawable-xhdpi中,

2017-09-07 09:44:15 3228 1

原创 TextView 固定背景图片不随文字变长而变长

textview 背景图片固定宽高

2017-04-20 14:22:02 1295

转载 Android Studio导入android源码

文章原地址:http://www.jianshu.com/p/fb16fa459acf上一篇文章ubuntu12.04(64bit)编译android4.4源码、sdk及kernel详细描述了如何编译源码、sdk及kernel,源码编译完成了,那么用什么来查看文件数量庞大的源码呢,有Source Insight、Eclipse、还有Android Studio 等,今天主要

2017-03-03 13:25:14 242

原创 android 编译SDK

在做一个MTK的系统项目中,为了方便开发,需要编译一下SDK,现记录一下编译SDK遇到的问题1.source build/envsetup.sh 2.lunch [product_name] 3. source build/envsetup.sh 4.make sdk 注意,第三步如果缺失,会报错device/mediatek/build/build/libs/custom.mk:160:

2017-03-03 09:46:42 2895

原创 android studio 引入系统库的代码全部变红,编译还能成功的解决办法

在一次android studio 卡住不动的时候,直接杀死其进程关闭,导致再启动后,代码中引入的系统库的import 等都变红,但是编译还能成功,从别处看到一个处理的方法,点击File-弹出选择第一个,然后androidstudio自动重启,重启之后,耐心等耐编译即可

2017-03-01 16:12:38 2909

原创 当ScrowView嵌套listView加载完数据后列表自动滚动到最顶端的问题

当ScrowView嵌套listView时,而且在listview上端还有内容的时候,导致listview加载完数据后,自动滚动到最顶端的问题,以下是解决方案,即在外层再加一个LinearLayout ,就能解决,以下是实例<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:

2017-02-16 12:56:14 1144

转载 来自官方的Android数据绑定(Data Binding)框架②

原文地址:http://blog.chengyunfeng.com/?p=735&utm_source=tuicool&utm_medium=referral数据对象任何的POJO 对象都可以用作数据绑定,但是修改一个 POJO 对象不会更新 UI。 数据绑定的威力在于,赋予数据对象在数据改变的时候通知其他组件的能力。有三种数据改变通知机制:Observable 对象、Obse

2016-11-19 23:07:47 267

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除