android
coco猫
这个作者很懒,什么都没留下…
展开
-
项目中dialogfragment 使用导致的Can not perform this action after onSaveInstanceState问题
最近接手一个项目维护,发现一个崩溃问题,使用场景是启动app时候有一个app内部更新弹框,用dialogfragment实现,强制更新的时候虚拟按键返回需要退出app,然后发现第一次启动app,弹框正常,第二次进入异常了,看奔溃分析应该是强制退出app导致activity异常触发了onSaveInstanceState。解决方法就是原来使用show方法替换为使用commitAllowingStateLoss方式,最近解决了问题...原创 2021-04-26 09:47:17 · 287 阅读 · 0 评论 -
Android Bitmap笔记
比较常用的缓冲策略LruCache和DiskLruCache通过BitmapFactory.Options key 可以按照一定的采样率来加载缩小后的图片,这样可以江都内存占用一定避免oom采样率 inSampleSize,为1时,采样后为图片原始大小,当大于1时采样后的图片宽/高均为原图大小的1/inSampleSize,像素为原图的1/(inSampleSize,的2次方),所占内存大小也为原图的1/(inSampleSize,的2次方),inSampleSize的取值总是2的指数,如果不是,那原创 2020-06-27 20:31:42 · 90 阅读 · 0 评论 -
FragmentPagerAdapter 和FragmentStatePagerAdapter
因为最近开发遇到一个问题,做了一个搜索后,下面有多个分类结果多tab,多fragment的功能当我发现我传递的search值改变时,但是搜索的结果却没有改变,排查原因,发现这里的search其实已经发生改变但是这里获取的时候并没有变化原因在于FragmentPagerAdapter 和FragmentStatePagerAdapter上FragmentPagerAd...原创 2020-01-10 15:14:28 · 197 阅读 · 0 评论 -
记录一次retrofit https
今天我们正式环境需要换成https首先后台给我一个阿里云的压缩包,里面包含一个.pfx 和.txt的文件 .txt里面是密码我的做法:第一步,1、下载jar包,下载地址https://www.bouncycastle.org/download/bcprov-ext-jdk15on-154.jar2、将下载好的bcprov-ext-jdk15on-154.jar复制到%JDK_H...原创 2019-12-31 13:51:25 · 196 阅读 · 0 评论 -
开发中一些好用的库(待更新)
1.下拉刷新https://github.com/scwang90/SmartRefreshLayout2.仿微信查看大图https://github.com/iielse/ImageWatcher3.路由 Arouter4.选择图片库 matisee原创 2019-11-21 10:33:45 · 105 阅读 · 0 评论 -
android 自定义Behavior 笔记
自定义Behavior 一般可以重写这些方法onInterceptTouchEvent():是否拦截触摸事件 onTouchEvent():处理触摸事件 layoutDependsOn():确定使用Behavior的View要依赖的View的类型 onDependentViewChanged():当被依赖的View状态改变时回调 onDependentViewRemoved():当被依...原创 2019-03-12 14:56:17 · 573 阅读 · 0 评论 -
android Handler 学习笔记
每个线程只能拥有一个looper ,一个Looper 可以绑定多个handlerMessageQueue的数据结构,是一个单向链表Handler 主要有 sendMessage() 和 post()两种方式使用方法:1 创建Handler类对象 private Handler mHandler = new Handler(){ ...原创 2019-03-21 17:04:36 · 91 阅读 · 0 评论 -
android 时间间隔笔记
Android开发中经常会遇到计算时间间隔的场景,java中提供了几种计算时间的方法:System.currentTimeMillis()和SystemClock.uptimeMillis()。关于currentTimeMillsSystem.currentTimeMillis() is the standard "wall" clock (time and date) expres...原创 2019-03-21 17:34:36 · 576 阅读 · 0 评论 -
webview shouldOverrideUrlLoading 学习笔记
今天看了一下关于shouldOverrideUrlLoading这个方法的返回值也尝试了一下1.如果你的webview 没有去设置setWebViewClient 的话,那么调用loadUrl的时候会让系统去处理,通常是手机浏览器去加载网页或启用选择对话框2.如果设置了setWebViewClient 的话,那么如果return true 那么这个时候是交给系统去处理,这个时候页面是白色的...原创 2019-03-22 10:01:23 · 439 阅读 · 0 评论 -
关于一个addview 开发问题的小计
最近开发通过addView 去动态加载 View的时候报了一个错代码是这样写的,结果报了异常The specified child already has a parent. You must call removeView() on the child's parent first.意思就是这个子view 已经有一个parent了,你需要先在这个子view的parent先将其移除...原创 2019-04-17 14:54:01 · 169 阅读 · 0 评论 -
使用Toolbar自定义布局时,设置match_parent 左右各有一段间距
解决方法:给Toolbar加上app:contentInsetStart”="0dp"(左侧)或者“app:contentInsetEnd”="0dp"(右侧)<android.support.v7.widget.Toolbar android:layout_width="match_parent" android:layout_height="?an...转载 2019-07-26 15:20:30 · 372 阅读 · 1 评论 -
开发小计
开发中一些常见的小问题:1.对于页面中有EditText 的控件,进入页面时不需要直接弹出键盘,在最外层父布局上设置android:focusable="true"android:focusableInTouchMode="true"2.对于一个布局,上一个布局用weight="1",最下面提交按钮这种可以设置android:windowSoftInputMode="adju...原创 2019-09-24 16:35:10 · 92 阅读 · 0 评论 -
android View addView 笔记
addView 主要有这几个方法addView(View child) // child-被添加的ViewaddView(View child, int index) // index-被添加的View的索引addView(View child, int width, int height) // width,height被添加的View指定的宽高addView(View ...原创 2019-03-20 17:28:37 · 384 阅读 · 0 评论 -
android Viewpager PageTransformer 笔记
viewpager 滑动切换页面的时候可以实现各种有趣的效果主要通过ViewPager.PageTransformer这个类来实现例如:public class MyPagerTransFormer implements ViewPager.PageTransformer { @Override public void transformPage(View page, ...原创 2019-03-20 17:17:36 · 318 阅读 · 0 评论 -
颜色透明度
百分比-开头字母 100% —FF 95% — F2 90% — E6 85% — D9 80% — CC 75% — BF 70% — B3 65% — A6 60% — 99 55% — 8C 50% — 80 45% — 73 40% — 66 35% — 59 30% — 4D 25% — 40原创 2017-03-27 19:17:05 · 370 阅读 · 0 评论 -
VelocityTracker
VelocityTracker简介android.view.VelocityTracker主要用跟踪触摸屏事件(flinging事件和其他gestures手势事件)的速率。用addMovement(MotionEvent)函数将Motion event加入到VelocityTracker类实例中。使用getXVelocity() 或getXVelocity()获得横向和竖向的速率到速率时,但是转载 2017-03-13 09:38:47 · 282 阅读 · 0 评论 -
Scroller类的介绍
其源代码(部分)如下: 路径位于 \frameworks\base\core\java\android\widget\Scroller.javapublic class Scroller { private int mStartX; //起始坐标点 , X轴方向 private int mStartY; //起始坐标点 , Y轴方向 private int mCurrX;转载 2017-03-13 09:58:42 · 244 阅读 · 0 评论 -
SwipeRefreshLayout嵌套 Scrollview 滑动冲突
SwipeRefreshLayout嵌套 Scrollview 时,scrollview 向下滑动时,会触发SwipeRefreshLayout下拉效果,导致scrollview 滑动。 加入一下代码scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedLis原创 2017-04-17 13:40:52 · 643 阅读 · 0 评论 -
安卓沉浸式状态栏
首先还是要感谢一下鸿洋大神。 代码如下:public class StatusBarCompat { private static final int INVALID_VAL = -1; private static final int COLOR_DEFAULT = Color.parseColor("#20000000"); @TargetApi(Build.VERSION原创 2017-05-04 16:44:13 · 222 阅读 · 0 评论 -
ArgbEvaluator
ArgbEvaluator argbEvaluator = new ArgbEvaluator();//渐变色计算类int currentLastColor = (int) (argbEvaluator.evaluate(positionOffset, PAGE_COLOR_ONE, PAGE_COLOR_TWO));//positionOffset:表示渐变度,取0.0F-1.0F之间某一值//...原创 2018-07-02 15:45:02 · 438 阅读 · 0 评论 -
Android Drawable 笔记
Drawable 的内部宽/高这个参数比较重要,通过getIntrinsicWidth 和 getIntrinsicHeight这两个方法可以获取他们,但并不是所有的Drawable 都有宽/高 ,比如一张图片他的内部宽/高就是图片的宽高,但是一个颜色形成的Drawable 他就没有内部宽高概念,Drawable 内部宽高不等同他的大小,一般来说Drawable 没有大小概念。另外这两个方法需要注...转载 2019-02-24 21:03:39 · 80 阅读 · 0 评论 -
android DecorView 笔记
1.getWindow().getDecorView()获取window最顶层View,该view 通过getWindowVisibleDisPlayFrame()方法获取程序显示的区域 Rect该view包括标题栏,但是不包括状态栏2.通过getWindowVisibleDisPlayFrame(rect) 我们可以得到手机状态栏高度int statusBarHeight = rec...原创 2019-03-11 13:45:15 · 574 阅读 · 0 评论 -
ViewStub 学习笔记
通过源码学习源码我们可以看到;ViewStub 的构造函数,public ViewStub(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context); final TypedArray a = context.obtainStyledAttribute...原创 2019-03-20 11:07:41 · 128 阅读 · 0 评论 -
android View 学习笔记
View 里我们常用的方法Creation(创建)Constructors(构造函数):有一种形式的构造函数会在View在代码中被创建时调用,另一种形式的构造函数会在View从layout加载出来时被调用。 第二种形式的构造函数会解析和应用layout文件中定义的任何属性。 onFinishInflate():该方法当View及其子View从XML文件中加载完成后会被调用。Layout...原创 2019-03-20 15:37:01 · 113 阅读 · 0 评论 -
android Gradle 笔记
1.配置打包签名:可以通过android studio 选择 project structrue 选择 app 的 Signing标签进行配置,生成好的格式大致是这个样子signingConfigs { release { keyAlias 'XXX' keyPassword 'XXX' storeFile file('key/r...原创 2019-03-12 10:14:32 · 110 阅读 · 0 评论 -
自定义按钮中的学习笔记
自定义组件三大步 onmeasre(),onLayout(),onDraw()很多自定义的博客都有讲,这里主要讲讲自己自定义中的一些不熟悉的地方,以便以后复习。setShadowLayer()setShadowLayer(12,0,12,Color.argb(61, 0x00, 0x00, 0x00)); 第一个参数为模糊半径,越大越模糊。 第二个参数是阴影离开文字的x横向距离。 第三个参数是阴影离原创 2016-12-12 14:17:06 · 286 阅读 · 0 评论