android
petterzou
本人性格开朗。喜欢编程。
展开
-
Android View观察或者说监听Activity的生命周期
今天学到一个比较使用的方法,就是Android系统提供的Activity中getLifecycle()方法,如我有一个播放器View,播放器View想实现观察或者说监听使用我的Activity或者Fragment的生命周期的变化,则如下写法(context as Activity).lifecycle.addObserver(view)其中view为播放器View.以上,mark一下。...原创 2021-03-30 20:14:44 · 882 阅读 · 0 评论 -
Android 解决竖向滑动的RecyclerView嵌入横向滑动的recyclerview的滑动冲突
此问题只需要重写被嵌入的横向滑动的recyclerview的dispatchTouchEvent方法,使用requestDisallowInterceptTouchEvent(true)方法,阻止竖向滑动事件向上传递即可,具体代码如下:public class RecyclerView2 extends RecyclerView { private int startX; private int startY; private PagerSnapHelper pagerSnap原创 2021-01-28 15:23:35 · 1339 阅读 · 0 评论 -
Android下查看SO库被依赖的情况
Android下查看SO库被依赖的情况起因近期在处理Android下动态库依赖的问题。我知道在Mac下查看某个so都被那些so依赖了,那么Android下怎么查看呢?我们都知道Android的内核是基于Linux的,可以从AOSP中你找不到ldd这个可执行程序,ndk中也没有。这就是本文要解决的问题。查看Android下共享库的依赖性。解决方案方案一:ndk中的readelf在ndk的toolchains/arm-linux-androideabi-4.9/prebuilt/l原创 2020-11-06 22:14:22 · 4756 阅读 · 0 评论 -
Android 阻止fragment里面的ViewPager滑动到最后一项时,再滑动切换到fragment页面的问题
Fragment里面的ViewPager里面加载了多个图片,当左右滑动图片到最后一项时,再次滑动时触发了activity中加载多个fragment页面的viewpager的页面切换事件,现在的需求是不要触发activity中的ViewPager的页面切换事件。设置某个fragment里面的viewpager的父控件及以上的控件不拦截滑动事件即可实现。但是这个拦截的时机很重要,需要在dispatchTouchEvent方法中设置。public class BannerViewPager ext.原创 2020-09-05 21:00:48 · 552 阅读 · 0 评论 -
Android Studio 混淆jar包
在android studio先面创建一个library的module,将要打成jar包的代码写好后就要开始打jar包了,分为两步操作,第一步打出没有混淆的jar。在library的gradle中,与android标签外配置如下://生成jar的命令是Gradle-other-makeJartask makeJar(type: Jar, dependsOn: ['compileReleaseJa...原创 2018-07-09 11:32:40 · 1030 阅读 · 0 评论 -
Android 配置多个FileProvider的方法以及使用
目前安卓升级到8.0之后,很多权限都控制了起来,尤其是调用相机,或者是调用第三方app查看sdcard上的文档都需要配置FileProvider才能正常访问。如果你使用了第三方的调用相机的SDK,且配置了默认了FileProvider,那么你在你的主工程里再次配置则会编译失败,下面说一下这个方法:首先自定义provider,继承FileProvider就可以,什么都不需要。其次是manif...原创 2018-07-18 11:58:25 · 9959 阅读 · 0 评论 -
一个整体的解决权限授予的方案
很久没有写博客了,近来工作中解决targetSDKVersion从19升级到23的问题,有人说怎么还那么低,没办法很长时间的项目啦。升级后最突出的问题就是权限问题了,23以前是在安装之前提示全部权限一次性给予,23之后是要在运行时询问获取,因此会给开发带来很多麻烦,尤其是老项目就更麻烦。 本方案是基于EasyPermission这个三方的权限框架而做的,而且下载的是源...原创 2018-12-14 19:20:09 · 255 阅读 · 0 评论 -
高版本手机获取anr日志文件命令
adb bugreport 在macpro下,默认把zip文件放到home目录下面,mark一下,防止忘记原创 2019-07-05 16:18:16 · 2512 阅读 · 1 评论 -
Android fragment中的onHiddenChange()方法
在切换fragment时,如果需要每次展现时实时刷新数据,则可在此方法里面操作,因为在add()或者hide()时,fragment中的生命周期的函数并不会被调用(非第一次),所以需要在这个方法里面支持刷新数据。@Override public void onHiddenChanged(boolean hidden) { super.onHiddenChanged(hi...原创 2019-07-15 14:50:46 · 2206 阅读 · 0 评论 -
关于viewpager切换时闪一下的问题
当ViewPager中的每一个item是RecyclerView时,且每个RecyclerView中有大量的数据时,那么切换时看到的效果就会闪动一下,虽然不是什么大问题,毕竟影响用户体验。默认设置setCurrentItem方法时,是默认平滑的切换,但是此时正是因为这个平滑的切换导致的闪动,正确的设置是viewPager.setCurrentItem(3,false);工作中遇...原创 2019-08-19 19:50:42 · 3595 阅读 · 1 评论 -
RecyclerView中的notifyItemInserted和notifyItemRemoved方法的使用
使用notifyItemInserted方法向末尾处添加item的时候,要使用如下的方式notifyItemInserted(getItemCount());其中getItemCount()才能正确的计算出插入的位置,然后在调用notifyItemChanged(getItemCount());方法更新一下即可如果使用list.size()-1计算插入位置的话,一个一个的插...原创 2019-08-15 17:16:16 · 13856 阅读 · 0 评论 -
Fragment 谨慎使用relace方法,尽可能的使用add方法加载fragment
遇到这样一个问题,当使用replace加载fragment的时候,app从后台切换到前台时,直接执行了fragment的onDestroy方法,导致了整个app的崩溃。修改成了add方法后,就解决了。分析原因,可能是replace时实例化了多个fragment,导致切回前台时,执行了无用的fragment实例的onDestroy方法导致的。mark一下...原创 2019-08-21 16:27:59 · 197 阅读 · 0 评论 -
加入购物车动画实现
/** * * @param itemView * @param targetView */ public void animationItem(ImageView itemView, View targetView) { // 一,将imageview加入到根view中 final ImageView image...原创 2019-08-16 18:58:25 · 229 阅读 · 0 评论 -
nable to resolve host
因为少了android.permission.CHANGE_NETWORK_STATE这个权限,导致android8.0的手机报出了unable to resolve host no address associated with hostname错误,因此写下此篇博文,留此记忆<uses-permission android:name="android.permission.BLUETO...原创 2018-05-22 14:46:50 · 928 阅读 · 0 评论 -
Android8.0之后调用系统相机的配置
前一阵子将sdk升级到8.0之后,发现调用系统相机会崩溃,崩溃,崩溃,不得不上网查一查原因,结果还真是权限越来越严格啦。不得不做出修改。修改如下:1.首先需要在manifest.xml中配置provider:provider android:authorities="包名.fileprovider" android:name="android.support.v4.c原创 2018-01-09 17:35:37 · 14526 阅读 · 1 评论 -
Android studio3.0之后的ndk配置
1.首先在main文件夹先创建cpp文件夹,创建CMakeLists.txt和一个.cpp的文件2.在build.gradle文件中defaultConfig下面配置如下:ndk { abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'arm64-v8a'}externalNativeBuild { cmake {原创 2018-01-02 15:24:38 · 2476 阅读 · 0 评论 -
自定义View,一个小圆绕着一个大圆动
这个特效的难点在于如何确定小圆的圆心点,因为小圆绕着一个固定的大圆在转。其实这个是有公式额,公式如下:int x = 0 + (int) (radius * Math.cos(angle * Math.PI / 180));int y = 0 + (int) (radius * Math.sin(angle * Math.PI / 180));话不多说,上代码:原创 2016-11-04 17:51:03 · 1546 阅读 · 0 评论 -
自定义步骤View--StepView
最近遇到一个按步骤走流程的需求,相信其他的程序员也会遇到这样的需求吧,好了下面说一下我解决这个问题的过程刚接到这个需求的时候,我是使用布局的方式画的,很长很乱,适配是发现,那是相当的烂啊,根本无法满足适配的需要,无语啊。代码就不贴了哈。还是转换思路,自己写吧,于是就简单的写一个。代码如下:思路如下: 先写出7个方法,每个方法实现的是每个步骤的状态,画出圆点、连线原创 2016-11-14 15:32:44 · 546 阅读 · 0 评论 -
Android Fragment中载入Fragment时注意事项
当你在Android中使用Fragment时,需要在Fragament中载入另一个Fragment的时候使用findFragmentById方法载入时,android5.0以下的时候是没有任何问题的,但是Android5.0以上手机获取到fragment的就是空的,即为报出空指针异常,解决方法如下:1.new出这个fragment2.使用getActivity().getFragmen原创 2016-11-01 18:12:10 · 302 阅读 · 0 评论 -
Android 自定义图文混排的item等高等宽item
Android 自定义图文混排的item等高等宽item原创 2016-11-01 18:36:06 · 348 阅读 · 0 评论 -
Android 解决滑动冲突的方法--ViewGroup中的requestDisallowInterceptTouchEvent(true)方法
当我们使用ScrollView和ViewFlipper或者ListView等等控件产生滑动冲突的时候,我们会觉得,怎么会有这样的设计,难道就没有更好的设计了吗?可是,当我们不得不处理这样的情况的时候,这个方法绝对是一个利器。 在ViewGroup的源码中并没有对这个方法有具体的使用,导致我之前根本不知道这个方法是该怎么使用的,其实这个方法的作用,当触摸到该ViewGrou原创 2016-11-17 11:35:48 · 1177 阅读 · 0 评论 -
Android 获取文字的宽度、高度
public float getFontWidth(Paint paint, String text) { return paint.measureText(text);}/** * @return 返回指定的文字高度 */public float getFontHeight(Paint paint) { FontMetrics fm = paint.getFontMe原创 2016-11-17 13:14:27 · 7382 阅读 · 0 评论 -
Android Handler MessageQueue Loop Message之间的关系以及消息发送响应流程
Handler MessageQueue Loop Message之间的关系原创 2016-11-02 18:25:15 · 826 阅读 · 0 评论 -
Android-- 封装Dialog,即自定义Dialog,使其满足各种dialog的样式要求
工作中,我们免不了需要使用Dialog显示各种各样的提示页面,但是呢,有的需要透明度,有的需要取消黑暗度,或者对显示的位置和大小要求等等,不一而足,于是就产生了自己封装一个高大上的Dialog来满足工作当中需要的各种各样的需求。 其实呢,封装Dialog,最主要的地方就是在于dialog的Window的封装,通过getWindow获取到Window后,使用它可以对原创 2016-12-09 15:12:45 · 428 阅读 · 0 评论 -
自定义虚线格式的EditText输入框
好久没有写博客,是觉得没有太多的东西可写,今天分享一下,自定义edittext的输入框,效果图如下: 这个效果是一个输入11位手机号的效果图,分为两个步骤实现: 1.画出虚线,确定宽度和高度 2.控制焦点的定位。 虚线并不是一个图片,而是继承了EditText后,画出来的,具体的代码如下:public class VisitCodeEd原创 2017-09-18 16:16:21 · 1245 阅读 · 0 评论 -
基于Retrofit + RxJava的http请求的封装
最近retrofit + RxJava 请求方式很火啊,本人也对此做了一些封装,也算是对架构的一点实践吧,需要文件如下:‘HttpService接口 定义每个接口 HttpManager类 处理每个请求 OperResponse类 接口返回的根结构(基于json格式) BaseOperation类 每一个请求的基类Retrofit + RxJava请求方式需要这样的一个原创 2017-09-18 17:14:40 · 526 阅读 · 0 评论 -
基于对Retrofit的源码的理解,实现Retrofit调用的模式的activity之间的跳转
基于对Retrofit的源码的理解,实现Retrofit调用的模式的activity之间的跳转 动态代理设计模式,泛型的使用原创 2017-09-20 16:30:43 · 316 阅读 · 0 评论 -
Android 自定义Camera全屏拍照,支持前后摄像头
解决setParamters failed的异常支持前后置摄像头图片旋转原创 2017-11-17 12:58:06 · 10267 阅读 · 4 评论 -
Android 收集崩溃的详细信息
关于此问题,网上确实也比较多,但是我是经过看了好多文章后,总结出来的,能把非常相信的错误日志记录下来,先保存到sd卡上,然后可以通过网络上传到服务器上。崩溃的日常其实就是Thread.UncaughtExceptionHandler这个handler处理的。创建一个类,继承这个handler,需要实现uncaughtException(Thread thread, Throwable ex)方法。原创 2018-01-02 15:01:43 · 733 阅读 · 0 评论 -
Anroid TextureView、SurfaceView的Camera预览实现
其实TextureView是在Android4.0以后才有的,为了弥补SurfaceView的不足,即不能够融入到整个UI中,也不能设置一些属性,如设置透明度等等,废话不多说,上代码:TextureView实现Camera的预览package com.creditease.runningman;import android.app.Activity;import andr原创 2016-11-03 17:33:04 · 1436 阅读 · 0 评论