自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 问答 (1)
  • 收藏
  • 关注

原创 解决由启动页跳转到主页面时状态栏闪烁卡顿问题

最近才发现,项目在从启动页SplashActivity跳转到MainActivity时,发现MainActivity在出现但瞬间,状态栏会出现闪烁的问题,给人一种卡了一下的感觉,简直不能忍。然后发现是因为SplashActivity 页面设置为全屏效果,而MainActivity则没有设置,是默认的非全屏效果设置,这就导致从全屏跳转到非全屏界面的瞬间,顶部的状态栏突然跳出来,插入在屏幕顶端,造成页面出现一次蜜汁卡顿。解决方法很简单,在 Activity 切换之前,把 Splash 页面的全屏通过

2021-03-02 10:47:27 1057

转载 Android面试专题系列(一): String中“==“与equals()的区别

转载自:https://blog.youkuaiyun.com/cjm2484836553/article/details/105119934《Android面试专题系列一》: String中"=="与equals的区别1.抛出问题 2.知其然知其所以然 2.1 String中的 == 比较 2.2 String中的equals比较 2.3 关于hashCode 3.小结1.抛出问题请说一下,String中"=="与equals()的区别,分析并预测如下代码的输出结果:Stri

2021-01-21 15:27:08 586

原创 windows 10 环境下 的 flutter 环境配置教程及 问题解决办法

最近开始接触flutter,小白一枚,记录一下最近安装flutter的过程。因为自己电脑已经安装了Android Studio 和 git 工具,因此直接从安装flutter说起,1,去官网下载flutter 安装包:https://flutter.dev/docs/development/tools/sdk/releases下载成功之后,将安装包zip解压到你想安装Flutter SDK的路径,我自己是放在C盘目录下解压的(PS: 你可以根据自己实际情况自己选择,如:C:\src...

2020-11-20 14:44:05 2709 2

转载 Gradle sync failed: Received close_notify during handshake

今天无聊升级了一下Android studio, 然后,粗事了,55555~~~编译报错,如图:翻译过来的意思是 :握手时收到关闭通知。因为Android studio 在编译工程的build.gradle时 ,Jcenter里面的数据无法下载,注:我的报这个错误可能是公司对访问的网络有权限,所以无法访问jcenter的数据)解决:打开工程的build.gradle文件 ,把buildscript和allprojects中的Jcenter 替换成阿里云的就可以了。如图: mav

2020-11-12 15:02:23 266 1

转载 android 开发之 Intent使用技巧点

判断Intent是否为nullif (intent.resolveActivity(getPackageManager())!=null) { //判断Intent是否为null // Intent不为空 }else{ // Intent为空 }判断Intent的指定Key是否为空:if(intent.hasExtra("key")){ //查看有没有指定的key}清除Intent里指定key里面的值:inten

2020-10-16 11:44:53 1024

原创 记录性别选择TextView,选中状态

前段时间,添加客户性别选择按钮,原型如图:然后通过书写background 和color 来展示是否选中:具体代码如下:xml: <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/dp_50" android:layout_marginTop="@dimen/dp_20" android:gravity=

2020-10-13 16:47:01 1079

转载 记一次Fragment 报错: Could not find Fragment constructor

本次排查Bug的fragment基于AndroidX1.1.0线上bugly报了一个Could not find Fragment constructor,先看一下Fragment的构造函数/** * Constructor used by the default {@link FragmentFactory}. You must * {@link FragmentManager#setFragmentFactory(FragmentFactory) set a custom F

2020-09-02 11:49:00 11935

转载 Android 代码设置 输入框部分 限制

在java文件中:serialText = (EditText) findViewById(R.id.serial_edit); serialText.setFilters(new InputFilter[] { new InputFilter.AllCaps(), //自动大写 new InputFilter.LengthFilter(17), //限制字符长度 //只能输入字母和数字 DigitsKeyListener.getInstance("1234567.

2020-09-02 11:12:18 516

转载 WebView加载网页不显示图片解决办法

对于大家来讲WebView肯定很熟悉,因为我们在日常开发中经常用到它。所以对于它的一些基本用法我就不在这啰嗦了,直接进入正题。我遇到的问题就是在使用WebView加载网页的时候图片不显示(我手机系统是5.1.1),当时出现这个问题我就想当然的以为,是不是给WebView少设置的什么东西。然后百度一下:mWebview.getSettings().setJavaScriptEnabled(true);//启用jsmWebview.getSettings().setBlockNetworkImag

2020-08-27 15:33:50 4117 2

原创 记录一次 android activity通过 intent传值失败

问题:今天在修复项目bug时,需要通过Intent 来传值控制主Activity tab切换,但是在返回MainActivity时,发现收不到intent传递到数据,然后检查一下代码,发现传递的Key和获取的Key都没错,但是为什么在目标Activity会获取不到传递过来的数据?然后查资料,发现是Activity的启动模式导致的,MainActivity 设置的启动模式是singleTask ,也就是说,如果目标Activity的实例已经存在并且符合要求,则不会再创建相应的实例,因此在Ac.

2020-08-27 15:31:38 1315

原创 记录CheckBox 的使用技巧

最近项目里需要添加一个选择隐私策略的功能,用的是checkbox控件,但是原生控件边框样式不太美观,所以就想到自定义一下选择框样式,有两种方法:第一种是通过Theme修改,这种方式只是修改checkBox选中与未选中的颜色:如下: <CheckBox android:id="@+id/checkBox" android:layout_width="wrap_content" android:layout_height

2020-07-21 16:19:17 240

转载 popupwindow 在Android5.1系统上,弹窗不显示

早上新需求,需要一个弹窗,然后用到popupwindow,但是在测试时发现,弹窗在Android5.1的手机上,点击无法弹出,其他手机完全没问题,查资料发现是没有给popupwindow设置宽高导致的代码设置一下宽高即可:window = new PopupWindow(this); window.setContentView(view); //设置宽高 window.setWidth(ViewGroup.LayoutParams.WRAP_CONT

2020-06-04 17:54:08 921

原创 记录一次导第三方aar包报错:Manifest merger failed with multiple errors, see logs

因为项目需要,所以直接导入第三方aarbao使用,过程简略为: 1,将aar包放入libs 包下,2,在build.gradle中引入资源,然后点击Sync now, 出事啦直接报错:Manifest merger failed with multiple errors, see logs,一脸懵逼,解决办法:链接:https://www.cnblogs.com/bluesto...

2020-03-09 19:52:57 695

原创 记录一次,getIntent().getParcelableExtra()接收数据错乱

项目涉及到通过Intent 传递一个Object对象,然而,在接收数据时,发现出现了数据错乱的问题,最后查出原因,是实体bean,在进行Parcelable序列化时,没有按照成员变量声明的顺序读取数据,导致出现获取数据出错在一个实体类进行Parcelable序列化时,必须实现Parcelable.Creator接口,以及writeToParcel(Parcel dest, int flags)...

2020-01-17 17:53:49 8648

转载 android保存图片到本地并可以在相册中显示出来

项目里新添加保存图片功能,在测试时,发现当将图片保存到本地时,打开手机相册并不显示保存成功的图片,于是经过各种查阅和百度发现原因如下:因为手机系统相册是由手机本身的自带系统管理的,我们在进行自己app的操作时并不能直接控制手机的自带系统,所以即使存储图片成功了,在显示的时候手机并不知道图片库已经有更新,除非调用过手机摄像头拍摄,所以解决方案就是我们手动的发一个广播来通知手机系统图片有更新。发送...

2020-01-06 10:03:24 2407

原创 初识 OverScroller类和Scroller类

因为书写自定义控件,需要用到view滑动,请教同事,用到了OverScroller类,但是不甚了解,在这里记录一下其常用的api.OverScroller和Scroller有什么区别呢?事实上,这两个类都属于Scrollers,Scroller出现的比较早,在API1就有了,OverScroller是在API9才添加上的,出现的比较晚,所以功能比较完善,Over的意思就是超出,即OverScr...

2019-12-26 17:18:12 1431

原创 MotionEvent中getRawX()、getRawY()与getX()、getY() 的区别

最近在自定义view中,用到onTouchEvent 方法里的MotionEvent中getRawX()、getRawY()与getX()、getY(),四个参数,一直没怎么注意过这几个参数有什么异同,现在在这里记录一下。(盗用网友的图 +||+)getX()和getY()获得的是触摸点相对于View自身左上角的位置(这两个值不会超过view的长度和宽度)getRawX()和getRa...

2019-12-26 15:15:18 878

原创 Android canvas.drawBitmap讲解

1,基本的绘制图片方法drawBitmap(Bitmap bitmap, float left, float top, Paint paint)参数://Bitmap:图片对象,left:偏移左边的位置,top: 偏移顶部的位置2, drawBitmap( Bitmap bitmap, Rect src, Rect dst, Paint paint);这里由2个Rect,第一个...

2019-12-24 17:47:47 14323 1

原创 用Activity 书写一个dialog

在项目中的用到弹窗时,一般都会用Dialog,其实可以使用Dialog样式的Activity来实现,只需要在注册Activity时指明theme就行。下面就记录一下这个Dialog的创建过程,以及一些遇到的坑。第一步:创建一个DialogActivity,继承自Activity,第二步:在注册清单里给这个Activity,添加主题样式theme, <activity ...

2019-12-23 17:42:28 332

原创 Android将内容复制到剪切板

近期,项目里需要用到将部分内容复制到剪切板,以前用到都是随用随找,挺麻烦的,最近整理一下,在这里记录一下其实Android提供的剪贴板框架,Android提供ClipboardManager、ClipData.Item和ClipData库使用复制和粘贴的框架,可以进行复制和粘贴不同类型的数据,使用就三个步骤:1,通过调用getSystemService()方法来实例化Clipboard...

2019-12-16 19:54:27 5007

原创 将bitmap转换为Byte[], 将view转换为bitmap,将url转为bitmap等

No1.将一个View 布局,转换为Bitmap: public static Bitmap getViewBitmap(View v) { v.clearFocus(); v.setPressed(false); boolean willNotCache = v.willNotCacheDrawing(); v.setWill...

2019-12-16 19:15:49 342

原创 Kotlin使用技巧之lateinit修饰符

lateinit延迟初始化属性在Kotlin中定义变量或者属性都是需要初始化值的,并且其都是private的,但是有些时候对于变量或者属性只需要声明,但是不需要初始化,则kotlin提供了lateinit关键字来实现: private lateinit var name : String //声明时不需要初始化 private var name2 = "小明" /...

2019-11-12 16:36:39 1810

原创 kotlin基础之val和var的区别

Kotlin 定义变量的语法为: var/val name:Typevar 关键字是 variable 的简称,表示该变量可以被修改,,这种声明变量的方式和java中声明变量的方式一样。 val 关键字是 value 的简称,表示该变量一旦赋值后不能被修改,相当于java中的final变量。一个val创建的时候必须初始化,因为以后不能被改变。// 定义一个可以被修改的变量var ag...

2019-11-12 16:09:50 2396 2

转载 Parcelable接口的使用

什么是Parcelable ? Parcelable,定义了将数据写入Parcel,和从Parcel中读出的接口。一个实体(用类来表示),如果需要封装到消息中去,就必须实现这一接口,实现了这一接口,该实体就成为“可打包的”了。Parcelable 传递对象 Android序列化对象主要有两种方法: 1.实现Serializable接口,实现Serializ...

2019-11-12 16:01:56 330

转载 Java Date,long,String 日期转换

1、java.util.Date类型转换成long类型java.util.Date dt = new Date();System.out.println(dt.toString());//java.util.Date的含义long lSysTime1 = dt.getTime() / 1000;//得到秒数,Date类型的getTime()返回毫秒数2、由long类型转换成D...

2019-11-04 18:12:54 287

转载 Android原生SpeechRecognizer(语音识别)

开篇先吐槽下,在Android 平台开发原生的SpeechRecognizer真是难受的,不像ios,无比轻松,平台统一。 由于Android 平台的碎片化问题比较严重,各个厂商都有自己的实现,尤其是语音助手出来以后,每家的语音服务肯定是不一样的。目前Android原生的SpeechRecognizer做法应该有两种默认调用原生SpeechRecognizer,并稍作修改 调用第三方...

2019-08-15 15:37:08 6877 2

原创 Android 调用谷歌语音识别:获取识别结果,进行文字输出

调用android 谷歌语音识别 ,获取识别结果,首先添加权限:<uses-permission android:name="android.permission.INTERNET" />实现步骤:先初始化一个语音识别请求,调用系统语音识别功能,返回识别结果。直白点就是在点击事件 直接利用 intent 跳转到手机里面的谷歌搜( 如果手机没有谷歌搜索,哦豁,你不能用这个...

2019-08-15 15:11:40 2067

原创 使用android的TextToSpeech控件实现文字转语音

近期项目中用到语音转文字,原本打算使用第三方sdk,后来发现安卓原生就提供了一个类处理这个事务。TextToSpeech无需集成,使用起来也更简单,在这里记录一下TextToSpeech,这个控件的好处是朗读文字不需要任何的权限,其次不用联网避免了如讯飞的联网登权限(讯飞其实也不错,比较智能,缺点是该控件只能读取简单的文字)使用:布局: <EditText ...

2019-08-15 13:33:16 1193

原创 CardView属性简介

CardView 是 Google 官方发布 MD 风格卡片布局控件,开发者可以很方便的使用它将布局做成卡片效果,其继承自 FrameLayout布局,并在其基础上添加了圆角和阴影等效果。具体属性如下:CardView_cardBackgroundColor 设置背景色CardView_cardCornerRadius 设置圆角大小CardView_car...

2019-08-08 18:15:37 4553

原创 自定义带删除按钮的EditText

公司产品更新ui,在输入框后面增加清除输入内容的按钮,原本想在布局文件里直接修改,但是发现布局会多层嵌套,而且还没办法复用,于是自己自定义一个EditText,去实现这个功能,在这里记录一下。public class ClearEditText extends android.support.v7.widget.AppCompatEditText implements OnF...

2019-08-05 18:23:22 314

原创 实现带有下划线的TextView

最近业务涉及到一个添加下划线的TextView,所以在这里记录一下实现的几种方法。第一种:在drawable中自定义一个xml文件,可以自定义横线位置、高度和颜色。<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/and...

2019-08-02 18:10:57 516

原创 在代码中动态设置控件的高度以及宽度

最近业务修改,需要将一个控件宽高放大至原来的1.5倍,由于该控件在项目里多个地方用到,不方便直接在xml文件里直接修改,所以考虑在代码里动态设置。代码如下: RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) mIvCollect.getLayoutParams(); lp.width = (i...

2019-07-25 14:11:16 1309

原创 解决 Only fullscreen opaque activities can request orientation 问题

有业务需要,上午把项目升级到8.0,心情美美的,然后一运行app,立刻崩溃,一脸懵逼,一看报错日志:Only fullscreen opaque activities can request orientation经过度娘知道,应该是API 27的新规矩:只有占据整个屏幕的 Activity 才可以设置横竖屏,半透明/对话框等不可设置横竖屏。好吧~找到问题所在,自然是解决问题,...

2019-06-26 13:08:32 280

原创 activity 进出动画

项目里设置页面进出动画,所以通过style里面设置,具体代码如下:在style.xml中AppTheme里配置Activity的动画 <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --...

2019-05-28 14:21:44 788

原创 Android Studio 引入的第三方包突然报红

今天打开android studio ,发现以前引入的第三方包突然报红,页面也飘红找不到正确包路径,很是莫名其妙,但是可以正常编译,而且在xml布局里,点击Ctrl+左键 提示出现:Cannot find declaration to go to,然后做了以下尝试:1,关闭重启studio,2,点击File 找到 Invalidate Caches / Restart.....

2019-05-24 16:51:03 2439

原创 Glide图片加载成功回调监听

Glide.with(this) .load(url) .error(R.mipmap.ic_nodata) .listener(new RequestListener<String, GlideDrawable>() { @Override public boolean onExcept...

2019-05-22 17:36:43 11806

转载 Android中获取当前正在显示的Activity实例

当前开发中需要中用到工厂模式,需要在其中一个模块用到当前Android实例,所以记录一下如何获取当前正在显示的Activity实例,1.监听Activity的生命周期在Application的onCreate方法中监听Activity的生命周期 registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {...

2019-04-09 18:36:49 3709

原创 Intent 传递枚举类型数据

最近项目中需要用Intent传递枚举类型的数据,以前只传递过基本类型,通过实验,发现可以使用序列化对象保存enum对象,如下内容:bundle.putSerializable(String key , Seralizable data) ;//向Bundle放入一个可序列化的对象举个栗子:枚举: /** *水果的枚举类型 */ public enum...

2019-03-28 11:12:32 5446

转载 Android中实现延时执行操作的几种方法

转载自:https://blog.youkuaiyun.com/mq2856992713/article/details/52005253目前开发涉及到一个延迟操作场景:点击一个按钮,实现一个旋转动画,2秒钟后,然后需要跳转到一个新页面的操作,(比如微信收红包的操作)在这里记录一下几种实现延时执行操作的方法:1.使用线程的休眠实现延时操作 new Thread() { ...

2019-03-27 17:03:44 12387

原创 ScrollView嵌套LinearLayout布局不能撑满全屏的问题

最近开发,由于业务需要,使用了ScrollView里面嵌套LinearLayout布局,希望能是LinearLayout填充满整个屏幕,但是LinearLayout设置android:layout_height="match_parent"还是一直不能填充满整个布局,设置权重也不行,然后在网上查到:当ScrollView里的元素想填满ScrollView时,使用"fill_parent"或者"...

2019-03-27 14:39:22 519

空空如也

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

TA关注的人

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