![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
$Qw
踩在轮子上却不会造轮子的人。
展开
-
DialogFragment 传递Arguments的值设置到EditText的问题
先看下源码/** * Controls whether the saving of this view's state is * enabled (that is, whether its {@link #onSaveInstanceState} method * will be called). Note that even if freezing is enabled, the * view still must have an id assigned to原创 2021-08-05 17:37:55 · 155 阅读 · 0 评论 -
WeakHandler
public class WeakHandler { private final Handler.Callback mCallback; // hard reference to Callback. We need to keep callback in memory private final ExecHandler mExec; private final Lock mLock = new ReentrantLock(); @VisibleForTesting p原创 2021-03-06 13:53:16 · 164 阅读 · 0 评论 -
【Android】kotlin解决AndroidX使用Glide生成GlideApp的问题
第一步implementation 'com.github.bumptech.glide:glide:4.9.0'kapt 'com.github.bumptech.glide:compiler:4.9.0' // 使用kapt而不是第二步apply plugin: 'kotlin-kapt' //在build.gradle中添加插件第三部@GlideModuleclass CustomAppGlideModule : AppGlideModule() { /** *原创 2021-01-20 17:47:07 · 649 阅读 · 0 评论 -
build.gradle阿里云镜像
maven { url ‘http://maven.aliyun.com/nexus/content/groups/public/’ }maven { url ‘https://maven.aliyun.com/repository/google’ }maven{ url ‘https://maven.aliyun.com/repository/jcenter’}原创 2019-11-12 12:31:10 · 1423 阅读 · 0 评论 -
替换字符串[]为空字符串
replaceAll("\\[\\]","\"\"")原创 2019-01-17 09:50:44 · 1885 阅读 · 0 评论 -
图片缓存流程
三级缓存:1.内存缓存2.本地缓存3.网络缓存作用:减少不必要的流量消耗,加载慢,影响用户体验,oom导致的频繁GC1.首次加载的时候通过网络加载,获取图片,保存到内存和本地2.之后运行App时,优先访问内存中的图片缓存3.如果内存没有,则加载本地的图片主流图片缓存框架优缺点对比ImageLoader的优点:1、支持本地缓存文件名规则定义2、默认实现多种内存缓存算法3、避...原创 2019-07-18 10:57:14 · 1124 阅读 · 0 评论 -
性能优化 App启动优化
代码可优化区域:1.Application onCreate (使用线程的方式初始化,懒加载)2.应用程序的第一界面Activity onCreate3.xml布局4.利用提前展示出来的Window,快速展示出来一个界面,给用户快速反馈的体验;5.避免在启动时做密集沉重的初始化(Heavy app initialization);6.定位问题:避免I/O操作、反序列化、网络操作、布局...原创 2019-07-16 17:01:22 · 116 阅读 · 0 评论 -
ThreadManager 一个简易的线程池管理类,提供三个线程池
package com.example.qiwei.tinker;import java.util.HashMap;import java.util.Map;import java.util.concurrent.Executors;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent....原创 2019-07-26 15:03:00 · 1825 阅读 · 0 评论 -
异步笔记
常用的:Threadnew Thread(){@Overridepublic void run() {super.run();// NetWork or DataBase Operation}}.start();//设置进程级别Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);缺点:创建及销毁线程消耗...原创 2019-08-30 16:18:59 · 102 阅读 · 0 评论 -
通过rxjava保存一整块view到手机相册
保存一整块view的代码//执行操作btn_save.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ViewUtil.createDialog(getActivity(), QMU...原创 2018-10-10 13:21:58 · 178 阅读 · 0 评论 -
Android 7.0 打开系统相机适配及使用FileProvider
针对部分高版本机型打开系统相机的适配代码/** * 类名称:PhotographForSignActivity * 类功能:打开系统相机拍照 * 类作者:Qw * 类日期: **/public class PhotographForSignActivity extends Activity { private static final int PHOTO = 9; // 拍照...原创 2018-09-19 13:41:03 · 1945 阅读 · 0 评论 -
使用Retrofit搭建一个listview分页加载
RetrofitRetrofit github地址日常使用的app都会有app浏览界面到底部自动加载数据,这就是分页加载,数据量太庞大容易造成布局卡顿,及内存使用变小,所以一般界面展示都是采取分页加载直接上代码package com.qw.dp.qwapplication.activity;import android.app.Activity;import android.原创 2017-04-20 09:42:32 · 947 阅读 · 0 评论 -
借助UltraViewPager搭建一个轮播图
UltraViewPagerUltraViewPager是一个封装多种特性的ViewPager,主要是为多页面切换场景提供统一解决方案。 github地址 - 横向滑动 - 纵向滑动 - 支持一屏内显示多页 - 支持循环滚动 - 支持定时滚动,计时器使用Handler实现 - setRatio按比例显示UltraviewPager - 内置indicator,只需简单设置几个属性就可原创 2017-04-16 16:37:48 · 2762 阅读 · 0 评论 -
android开发之android:process属性
android:process 的坑官方说明:默认情况下,同一应用的所有组件均在相同的进程中运行,且大多数应用都不会改变这一点。 但是,如果您发现需要控制某个组件所属的进程,则可在清单文件中执行此操作。 各类组件元素的清单文件条目—、、 和 —均支持 android:process 属性,此属性可以指定该组件应在哪个进程运行。您可以设置此属性,使每个组件均在各自的进程中运行,或者使一些组件共享一个原创 2017-07-05 20:30:21 · 1640 阅读 · 0 评论 -
SharedPreferences在多进程中的使用的问题
SharedPreferencesSharedPreferencespublic interface SharedPreferences android.content.SharedPreferencesInterface for accessing and modifying preference data returned by getSharedPreferences(Stri原创 2017-07-24 15:26:41 · 1548 阅读 · 1 评论 -
android 6.0 permission exception Can only use lower 8 bits for requestCode
申请权限遇到的错误 java.lang.RuntimeException: Unable to resume activity {com.y.account.RegisterActivity}: java.lang.IllegalArgumentException: Can only use lower 8 bits for requestCode原创 2017-12-28 16:42:55 · 263 阅读 · 0 评论 -
Android 重启应用代码
//重启应用 final Intent launchIntent = getApplication().getPackageManager().getLaunchIntentForPackage(getPackageName()); if (launchIntent != null) { UIU...原创 2018-08-30 16:19:46 · 1050 阅读 · 0 评论 -
Android列表适配器封装
一个简单的列表数据适配器封装,可放入基本使用类型数据,实体类数据/** * 类名称:** * 类功能:*** * 类作者:Qw * 类日期:**** **/public abstract class MyBaseAdapter<T> extends BaseAdapter { public String TAG = this.getClass().getSimp...原创 2018-09-13 14:59:50 · 547 阅读 · 0 评论 -
Android gradle 依赖库下载的地址
Mac系统默认下载到:/Users/(用户名)/.gradle/caches/modules-2/files-2.1 Windows系统默认下载到:C:\Users(用户名).gradle\caches\modules-2\files-2.1原创 2018-09-13 15:37:49 · 749 阅读 · 0 评论 -
Animation属性练习
在Android系统中,官方给我们提供了两种类型的动画:属性动画(Property Animation) 和 视图动画(View Animation),而视图动画又包含了两种类型:补间动画(Tween animation) 和 帧动画(Frame animation)。Property Animation(属性动画):通过改变对象的属性来实现动画效果。View Animation(视图动画原创 2017-05-05 16:42:55 · 345 阅读 · 0 评论