自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TextView 两端对齐+多余省略号显示

在此基础上增加了省略号显示。

2023-09-11 09:58:50 315

原创 smartTable图表库在dialog中使用, 调用dismiss 崩溃

报错为 ContextThemeWrapper cannot be cast to android.app.Activity原因是原本的SmartTable 的onDetachedFromWindow 方法中吧context强转为activity解决办法是新建一个类继承它,然后重写onDetachedFromWindow方法,加个ContextWrapper的判断@Overrideprotected void onDetachedFromWindow() {//用于修复第三方库SmartT

2022-05-17 15:06:55 287

原创 集成涂鸦智能,扫码闪退,报空指针异常

com.tuya.smart.scan.activity.ScanActivity Attempt to invoke virtual method 'void android.view.View.setOnClickListene说是 我给一个空按钮设置监听 ,可是这个activity是涂鸦sdk自带的经过检查才发现项目之前有引入一个com.github.yuzhiqiang1993:zxing:2.2.9也是扫码的库,其中有一个activity和布局文件名称是CaptureActi..

2022-05-11 10:52:09 645

原创 recyclerView + editTextView 编辑图片和文字标题 问题

要的效果是一个item包括图片和标题,添加图片后添加标题到list,当删除一个item时,所有的图片标题都变成一样的,都是postion为0的文本。猜测是刷新adapter的时候,editTextView 的 文本监听又被调用了,但是不知道为什么文本都是第一个文本。解决办法是,再给editTextView 加一个 焦点监听 ,聚焦的时候才去监听输入。参考:Android RecyclerView嵌套EditView实时更新Item数据 - 星辰之力 - 博客园...

2022-04-21 11:09:49 2313

原创 json 转 实体对象 报解析错误

rxjava+retrofit 同一个接口,不同参数,后台返回的数据格式一样,有的会报解析错误。后来发现,后台返回的数据中,gender字段,有的是空的字符串“ ”,有的是int值5 ,而我的实体类写的是int 类型,所以解析的时候,空字符串转int报错 。解决办法就是写成string无语...

2022-04-19 15:06:28 2857

原创 viewpager+Fragment+Butterknife报错 :Fragment already added: MsgOuChatFragment

参考文章卧槽系列 - Fragment already added 或许并不是你想的那样 | 积跬步,至千里。项目绑定布ji局用的是 Butterknifeapp闪退之后的log 是 Process: com.hykj.meimiaomiao, PID: 26088 java.lang.IllegalStateException: Fragment already added: PhoneMaintain_Repaire_order_Fragment{22c912b} (e83f6...

2022-04-06 14:11:10 2346

原创 BottomNavigationView 更改icon大小

BottomNavigationMenuView menuView = (BottomNavigationMenuView)navigationView.getChildAt(0);BottomNavigationItemView itemView = (BottomNavigationItemView) menuView.getChildAt(2);itemView.setIconSize(120);itemView.setIconTintList(ColorStateList.valueOf(.

2022-04-05 20:22:24 1096

原创 android 图片选择框架 动态权限申请框架 使用

因为android经常使用到添加图片功能,每次自己写都太麻烦,再加上动态权限的获取,非常容易弄混出错,所以整理一下,以后都这么用,慢慢熟悉。1、图片选择框架用知乎的 MatisseGitHub - zhihu/Matisse: A well-designed local image and video selector for AndroidMatisse 知乎图片选择框架 - 简书2、动态权限申请用XmPermissionsGitHub - lhm0603/XmPermissions.

2022-03-06 14:32:50 3587

原创 fragment 调用 activity中的方法

首先需要在 fragment 的onAttach 方法中获取activityoverride fun onAttach(context: Context) { super.onAttach(context) if (context is AnchorSeatLiveActivity ){ var anchorSeatLiveActivity=context as AnchorSeatLiveActivity; anchorSeatLiveActivit

2022-02-11 10:40:30 1952

原创 自定义view中的onMeasure方法

测量宽高一般有三种模式override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { super.onMeasure(widthMeasureSpec, heightMeasureSpec) setMeasuredDimension(measureSize(widthMeasureSpec), measureSize(heightMeasureSpec));}private fun measur

2022-02-05 17:56:03 578

原创 采用组件化方式管理依赖,在app或者module中引入dependencies.gradle 报错

参考:Gradle报错:Only Project and Settings build scripts can contain plugins {} blocks - 简书创建dependencies.gradle文件报错_lyhyrc的博客-优快云博客当在app/module的build.gradle文件的plugins代码块中,用id 'xxxxx'的形式引入插件后 再用apply from:'dependencies.gradle'plugins { id 'com....

2022-01-11 15:10:18 3564

转载 android中的图片三级缓存

转载Android中图片的三级缓存 - 简书主要知识点:三级缓存策略,通过网络、本地、内存三级缓存图片,来减少不必要的网络交互,避免浪费流量

2021-12-31 20:11:38 160

转载 弱引用 强引用 软引用 虚引用之间的区别

转载软引用、弱引用、虚引用-他们的特点及应用场景 - 简书主要知识点:1.强引用强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfM moryError错误,使程序异常终止,也不会靠随意回收具有强引用 对象来解决内存不足的问题。2.软引用软引用是用来描述一些还有用但并非必须的对象。对于软引用关联着的对象,在系统将要发生内存溢出异常之前,将会把这些对象列进回收范围进行第二次回收。如果这次回收还没有足够的内存,才.

2021-12-27 17:57:32 652

转载 Android冷热启动 实现APP秒开

转载:Android冷启动实现APP秒开 - 简书主要知识点:冷启动时,系统创建新进程给app,application初始化中,这时会先加载app主题样式里的WindowBackground里的背景图片。可以将背景图片设置成我们的logo,或者将背景设置为透明。...

2021-12-27 11:40:19 285

转载 glide的面试相关问题

转载:面试官:我们来聊聊Glide吧…… - 哔哩哔哩

2021-12-22 15:43:41 594

转载 android 事件分发机制

转载自图解 Android 事件分发机制 - 简书其中主要知识点有:用super调用父类的默认实现,那么整个事件流向应该是从Activity---->ViewGroup--->View 从上往下调用dispatchTouchEvent方法,一直到叶子节点(View)的时候,再由View--->ViewGroup--->Activity从下往上调用onTouchEvent方法。对于 dispatchTouchEvent,onTouchEvent,return true.

2021-12-22 15:36:12 87

原创 Android11调用相机保存图片的方法

原文链接:Android11调用相机保存并显示图片到imageview_Cingke是真的的博客-优快云博客android11版本因为加强了创建文件的限制,所以用以前保存图片的方法就行不通了。1、在获取相关权限后,调用相机Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//确保有相机来处理Intentif (takePictureIntent.resolveActivity(getPacka.

2021-11-08 19:56:36 1682

原创 android调用相机拍照返回的照片被自动压缩解决办法

使用相机拍照默认情况下调用相机的方式:Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(intent,CAMERA_REQUEST_CODE); //CAMERA_REQUEST_CODE=1一个int表示请求码在onActivityResult中返回的照片是被自动压缩过的,如果要解决的话,只能先把照片保存在本地,然后再读取出来。过程如下Intent inte...

2021-10-26 22:04:54 2104

原创 BottomNavigationView修改导航文字大小以及间距和宽度

调整底部导航栏图片和字之间的间距在dimens.xml中添加如下代码(设置的值越大,图片距离底部越近,距离顶部越远,有点类似于marginTop)<dimen name="design_bottom_navigation_margin">6dp</dimen>调整底部导航的高度<dimen name="design_bottom_navigation_height">100dp</dimen>修改导航文字大小res-values

2021-10-26 21:16:08 8383 1

转载 gradle 插件版本、gradle版本 和buildToolsVersion之间的对应关系

在构建flutter项目的时候,出现 Warning: Mapping new nshttp://schemas.android.com/repository/android/common/02to old nshttp://schemas.android.com/repository/android/common/01,查了一下,好像是gradle版本太低,然后我发现在示例中,要改两处的版本,一个是gradle-wrapper.properties,另一个是build.gradle里面的版本,而且两...

2021-10-22 23:29:06 1800

转载 Android-无法访问/打开 drawable 下的图片 Resource ID

机子型号太旧,而图片又存在了 drawable-v24 下,导致了无法访问。原文链接:Android-无法访问/打开 drawable 下的图片 Resource ID #0x7f070071_圆号本号-优快云博客

2021-10-17 12:27:43 598

原创 判断ImageView新传入的图片是否跟默认图片一样(图片判空)

/** //在activity中判断当前的图片是不是和默认图片相同* */private boolean isImageEmpty() {Drawable.ConstantState dftState = getResources().getDrawable(R.mipmap.edload).getConstantState();Drawable.ConstantState state = iv_edload.getDrawable().getConstantState();return dft

2021-10-08 21:45:35 310

原创 Android获取手机验证码之倒计时功能

原文链接:Android获取手机验证码之倒计时功能实现 - 简书1、创建倒计时工具类:public class CountDownTimerUtils extends CountDownTimer { private TextView mTextView; public CountDownTimerUtils(TextView textView, long millisInFuture, long countDownInterval) { super(mill

2021-10-07 22:54:07 569

原创 使用今日头条屏幕适配方案,用webveiw控件失效问题解决

在做屏幕适配的时候,因为webView初始化会还原 density 的值导致适配失效。在网上找了很多方法都没见效,然后在原github项目的issues中找到了解决问题的方法:JessYan: 今日头条屏幕适配方案常见问题汇总,提问前必看! · Issue #13 · JessYanCoding/AndroidAutoSize · GitHub这里有两个方法AutoSizeCompat.autoConvertDensityOfGlobal和AutoSizeCompat.autoCon

2021-10-07 12:52:21 743

原创 andorid 短信监听,自动填充

1、新建一个广播接收器public class SMSBroadcastReceiver extends BroadcastReceiver { private static final String TAG = "SMSBroadcastReceiver"; private OnReceiveSMSListener mOnReceiveSMSListener; public static final String SMS_RECEIVED_ACTION = "android.

2021-10-05 15:58:00 102

原创 andorid 创建文件夹和创建文件的区别

File dir = new File(Environment.getExternalStorageDirectory().toString()+"/signCash");if(!dir.exists()){ dir.mkdir();}这个是创建文件夹,getExternalStorageDirectory()获取存储卡的根目录,然后创建signcash文件夹==========================================String storePath...

2021-10-01 18:25:59 472

原创 自定义等待加载框,Dialog和SpinKitView结合

参考文章:https://ydmmocoo.github.io/2016/06/24/Android%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8A%A0%E8%BD%BD%E4%B8%ADDialog/Android 加载数据或者联网等待的弹框动画_idcrim的博客-优快云博客_android 加载数据时view动画https://ydmmocoo.github.io/2016/06/24/Android%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8A%A0%E

2021-09-22 20:27:36 292

原创 android程序搭建简易服务器(spring boot)

学习android开发的过程中,很多教程的api都过期了,所以需要自己临时搭建一个,也为以后做后台探探路。使用spring boot框架快速搭建服务器。1、购买服务器,用宝塔面板构建初始化内容(开放所需端口)2、用idea的spring boot框架写后台java程序(包括mysql数据库的增删改查)3、将项目打成jar包,用宝塔面板上传到服务器运行(注意idea和服务器的java版本要一致)一、购买阿里云云服务器 在linux服务器里安装宝塔面板(过程百度,开放相应...

2021-09-12 22:12:41 2680

原创 Activity 四种启动模式的应用场景

Standare:默认,无需设置SingleTop:APP接收到多条推送消息,点开不同消息,均由同一实例展示。SingleTask:APP的主页,无论哪种业务场景下再次回到此页,都不应保留之上Activity。SingleInstance:如APP经常调用的拨打电话、系统通讯录、地图类APP 等页面,不同APP调用此类Activity 时,首次创建实例,之后其他APP只能复用此实例。...

2021-05-12 21:03:09 160

原创 onDraw方法引发什么内存问题

Android自定义View中在onDraw方法里面尽量不要新建对象和做耗时操作,因为onDraw经常会被频繁调用,新建对象会触发垃圾回收导致内存抖动影响性能

2021-05-10 10:27:55 321

原创 策略模式 简单实现

将可变部分从程序中抽象分离成算法接口,在该接口下分别封装一些列算法实现,并使他们可以相互替换,从而导致客户端独立于算法的改变。1、创建抽象父类public abstract class Duck { public void quack(){ System.out.println("鸭子叫嘎"); } public void display(){ System.out.println("黄色"); } publ

2021-04-30 16:38:34 164 1

原创 Builder模式 简单实现

当一个类的构造函数参数个数超过4个,而且这些参数有些是可选的参数,考虑使用构造者模式。在Computer 中创建一个静态内部类 Builder,然后将Computer 中的参数都复制到Builder类中。 在Computer中创建一个private的构造函数,参数为Builder类型 在Builder中创建一个public的构造函数,参数为Computer中必填的那些参数,cpu 和ram。 在Builder中创建设置函数,对Computer中那些可选参数进行赋值,返回值为Builder类型的实.

2021-04-29 13:41:19 155

原创 自定义View的简单实现

继承View后实现构造方法,并在其获取自定义的属性值:res/values/目录下添加一个attrs.xml,:<resources> <declare-styleable name="MyView"> <attr name="content1" format="string" /> <attr name="isShow1" format="boolean" /> <attr na...

2021-04-24 16:24:38 115

原创 recyclerview的position值

不超过size的情况下 position返回的是下个空item的position,达到最大个数的时候,就是最后一个item元素的positon。通过这个可以设置recyclerview下个item的添加按钮是否显示

2021-04-23 15:01:21 671

原创 PictureSelector框架的简单实现(图片选择添加,不包括视频)

github源码:https://github.com/LuckSiege/PictureSelector需要创建三个类,最后在activity中完成逻辑代码。1、FullyGridLayoutManager :继承GridLayoutManager的类,不用改动。 2、GlideEngine:图像引擎,用glide实现图片...

2021-04-23 14:24:07 1408

转载 高效使用Github寻找开源项目

# 按照项目名/仓库名搜索(大小写不敏感)in:name xxx # 按照README搜索(大小写不敏感)in:readme xxx# 按照description搜索(大小写不敏感)in:description xxx# stars数大于xxxstars:>xxx# forks数大于xxxforks:>xxx# 编程语言为xxxlanguage:xxx# 最新更新时间晚于YYYY-MM-DDpushed:>YYYY-MM-DD...

2021-03-31 23:56:53 77

原创 aidl接口文件传递自定义类 编译不成功

aidl接口文件传递自定义类的时候,注意几点:1、aidl文件与对应的java类包名相同2、java类要实现pacelable接口 ,并且在aidl文件里声明 parcelable xxxxxx; 然后导包给另一个aidl3、(最坑爹的)aidl不能写方法进去,不然会编译错误,因为studio创建aidl文件的时候回自动生成一个basicTypes方法,连同接口都需要注释掉!(我他妈不知道 弄了一下午 槽!)...

2021-03-25 00:02:23 695

转载 2021-03-17

Android - RecyclerView系列之点击事件https://www.jianshu.com/p/624f9524243e

2021-03-17 12:38:37 48

原创 2021-03-16

Okhttp中的enqueue方法,异步请求获取数据,在1、把数据放入全局变量无法得到数据2、adpter调用更新数据方法后未成功第一点的解决办法: 异步请求获得的数据,在其他地方把返回数据赋给全局变量不是会有数据的,因为只有请求返回后才会有数据, 又因为是异步的,这时候赋给全局变量的值是空的,因为这时候请求并没有返回,而变量已经赋值完毕了。 所以可以用回调接口的方...

2021-03-16 14:39:36 68

原创 动态获取权限的封装类

在一个Activity中调用工具类去申请权限(注意:mReqCod和callBack最好用Map的形式装起来,key为mReqCod,value为allBack,防止两次请求的时候值被覆盖)public class PermissionUtils { private Activity mActivity; private int mReqCod; private CallBacks callBack; //回调接口,已授权和已拒绝 public st.

2021-03-13 15:56:59 192

空空如也

空空如也

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

TA关注的人

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