Android开发之路
文章平均质量分 52
其子昱舟
挣扎出深渊前,得明白自己处于深渊中。
展开
-
IOS工具篇 swift 机型判断 含iPhone14系列
IOS工具篇 swift 机型判断 含iPhone14系列原创 2023-02-21 21:17:27 · 1725 阅读 · 0 评论 -
Android踩坑篇 Failed to open zip file 解决办法
错误提示:方案一:如果自己以前的项目可以打开,直接把build.gradle文件中的版本号换掉,再把gradle-wrapper.properties文件中的distributionUrl替换掉即可,如图:替换前:替换后:方案二:bug的意思是未能打开zip文件,就是没有办法打开gradle-X.X-all.zip文件(X为数字,对应版本号),这时候去你的存储目录下找到这个文件(默认:C:\Users.gradle\wrapper\dists…)有两个这样的文件夹肯定是以前复制转载 2021-05-10 23:18:21 · 2234 阅读 · 0 评论 -
Android基础篇 学习路线指南
前言看到一篇文章中提到“最近几年国内的初级Android程序员已经很多了,但是中高级的Android技术人才仍然稀缺“,这的确不假,从我在百度所进行的一些面试来看,找一个适合的高级Android工程师的确不容易,一般需要进行大量的面试才能挑选出一个比较满意的。为什么中高级Android程序员不多呢?这是一个问题,我不好回答,但是我想写一篇文章来描述下Android的学习路线,期望可以帮助更多的Android程序员提升自己。由于我也是从一个菜鸟过来的,所以我会结合我的个人经历以及我对Android学习过程的转载 2021-05-10 23:11:48 · 933 阅读 · 3 评论 -
Android获取Shape的solid属性的color值
一、设置<shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="5dp" /> <solid android:color="@color/white" /></shape>二、获取GradientDrawable drawable =(GradientDrawable)view.getBackground()原创 2021-02-04 10:25:12 · 1164 阅读 · 0 评论 -
Android ---> Unicode码转为汉字
一、转换代码 /** Unicode码转为汉字 */ public static String decode(String unicodeStr) { if (unicodeStr == null) { return null; } StringBuffer retBuf = new StringBuffer(); int maxLoop = unicodeStr.length(); for (原创 2020-12-28 14:24:46 · 1133 阅读 · 2 评论 -
借助(图片框架)Glide获取Bitmap并对Bitmap进行处理
一、回调展示回调接口:targetsprivate SimpleTarget target = new SimpleTarget<Bitmap>( width, height ) { @Override public void onResourceReady(Bitmap bitmap, GlideAnimation glideAnimation) { }};width, height 可以是指定宽高或者参数传入Target.SIZE原创 2020-12-28 10:36:38 · 7528 阅读 · 0 评论 -
完美解决Activity之间传输Bitmap的三种方式
因为Intent只能传输数据容量很小的基本数据,当位图很大的时候,很有可能会出现传输错误第一种:使用Intent,通过parcelable方式传递//Activity One 【第一个活动ActivityA (传递)】Intent intent = new Intent(this, Two.class);intent.putExtra("key", bitmap);//Activity Two 【第二个活动ActivityB (接收)】//接收类型为 Bitmap ,通过getParce.原创 2020-12-25 16:07:46 · 3739 阅读 · 5 评论 -
Android.View.InflateException: Binary XML File Line #异常的解决
一、排查逻辑1.如果View是用类来实现的,需要检查构造方法:必须有这个构造函数:public XXXX(Context context, AttributeSet attrs) {super(context, attrs);}2.检查全类名是否正确,若是自定义的需要去复制全类名,若是引用第三方,可以看其案例如何使用,或者看github上的使用介绍<fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard android:id="@+id原创 2020-12-21 17:00:18 · 10590 阅读 · 0 评论 -
Android布局中NestedScrollView嵌套viewpager不显示内容的解决方案(含TabLayout + viewpager 的场景)
一、概念分析NestedScrollView里面只能有一个ViewGroup,也就是只允许有一个子节点(允许一个父子节点包含多个子子节点)的存在。1、如果你的NestedScrollView包含了多个子节点就会报错,一般来说,都会在所有子节点的最外层嵌套一个LinearLayout或者其他你业务场景的布局。子节点:通俗的讲,一个button是一个子节点,一个TextView也是一个子节点,以此类推,每个控件都可以理解为一个字节点2、viewpager为什么不能显示内容,无论你是这样设置宽高an原创 2020-12-21 16:50:42 · 4764 阅读 · 5 评论 -
Android布局属性tools分析
一、tools属性说明/**【标识】当前的布局文件是用于MainActivity这个activity*/xmlns:tools="http://schemas.android.com/tools"tools:context=".MainActivity"/**如果在AndroidManifest.xml中为该activity指定了Theme,则在布局文件的预览时会使用该Theme。*/二、整体解析tools:context="activity name"这一句不会被打包进APK原创 2020-12-21 11:08:34 · 221 阅读 · 0 评论 -
Android Studio 报错 : Cause : zip file is empty
找到项目目录 : gradle/warpper/gradle-wrapper.properties 文件并打开在第六行,我这里显示的是: distributionUrl=http://services.gradle.org/distributions/gradle-4.4.1-all.zip将链接转换为浏览器能读懂的格式: http://services.gradle.org/distributions/gradle-4.4.1-all.zip去浏览器粘贴这个链接,下载 gradle-4.4.1-al原创 2020-12-18 11:37:01 · 2760 阅读 · 0 评论 -
Android中比较两个时间的大小
/** * 比较当前时间和服务器返回时间大小 * * @param nowDate * @param compareDate * @return */public boolean compareDate(String nowDate, String compareDate) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm"); try { Date now = df.parse(now原创 2020-12-18 09:36:47 · 2051 阅读 · 1 评论 -
Android中ImageView控件scaleType属性详解
ImageView的具体属性1、显示在ImageView的中心的属性分别为:centerCrop、center、centerInside、fitCenter2、ImageView全部的属性3、 具体属性分析android:scaleType=“centerCrop”以原图填满ImageView为目的,如果原图size大于ImageView的size,则与center_inside一样,按比例缩小,居中显示在ImageView上。android:scaleType=“center”原创 2020-12-10 10:00:06 · 1852 阅读 · 0 评论 -
Android Intent hasExtra()方法精讲
一、源码介绍 /** * Returns true if an extra value is associated with the given name. * -> 如果有额外的值与给定名称相关联,则返回true * * @param name the extra's name : 额外的值 * @return true if the given extra is present. */ public boolean hasE原创 2020-11-24 14:03:16 · 1092 阅读 · 0 评论 -
Android Dialog 弹窗的生命周期
Dialog的生命周期一共会经历以下6个方法:onCreate() : 视图初始化创建show() :视图显示onStart() : 视图启动cancel() :视图取消onDismiss() :视图结束Stop() :视图停止了解Dialog的生命周期,可以有效解决借助弹窗在执行完整的生命周期过程中,重写其方法执行某些你想达到的操作。Dialog仅在在第一次启动时候会执行onCreate()方法之后无论该Dialog执行Dismiss(),cancel(),stop(),D原创 2020-09-28 10:22:52 · 4538 阅读 · 0 评论 -
ActionBar中setDisplayHomeAsUpEnabled(true)
setHomeButtonEnabled这个小于4.0版本的默认值为true的。但是在4.0及其以上是false,该方法的作用:决定左上角的图标是否可以点击。没有向左的小图标。 true 图标可以点击 false 不可以点击。actionBar.setDisplayHomeAsUpEnabled(true) // 给左上角图标的左边加上一个返回的图标 。对应ActionBar.DISPLAY_HOME_AS_UPactionBar.setDisplayShowHomeEnabled(true原创 2020-09-07 17:43:53 · 980 阅读 · 0 评论 -
AndroidStudio多行注释快捷键
原创 2020-09-06 15:54:40 · 1736 阅读 · 1 评论 -
Android Studio导入本地jar包,本地library库,maven库相关方法
1、导入本地jar包步骤将jar拷贝到项目libs目录Ctrl+Alt+Shift+s进入project structure点击Dependencies点击右边栏 +选择2. file dependency选择libs目录下的jar包,点击确认完成2、导入maven库Ctrl+Alt+Shift+s进入project structure点击Dependencies点击右边栏 +选择1.maven dependency选择你需要的库 点击确认完成3、导入本地library原创 2020-08-21 00:23:54 · 1579 阅读 · 0 评论 -
Activity 的生命周期 ( 自学干货 )有用点个赞~
android-lifecycle 生命周期图每个生命周期做了什么?0、onCreate():这是 Activity 的第一个生命周期方法,其中必须要做的操作就是 setContentView()。setContentView():设置内容视图setContentView() 里面大概做了这么几件事:创建 DecorView,并设置 PhoneWindow解析 xml 布局文件,生成 View 对象并塞到 DecorView 中此时 DecorView 并没有被绘制,Window原创 2020-08-18 14:17:56 · 295 阅读 · 0 评论 -
android studio如何快捷生成APK,以及对应的APK在哪?
android studio如何快捷生成APK点击Build APK(s)就可以生成APK文件了对应生成的APK在哪1、找到执行了Build APK(s) 的项目包2、app - build - outputs - apk - debug - xxx.apk上面绿色的图标就是apk了原创 2020-08-17 11:13:04 · 1292 阅读 · 0 评论 -
标题栏设置 搜索控件 的详细解答
其中这两句代码的解析: app:actionViewClass="androidx.appcompat.widget.SearchView" app:showAsAction="ifRoom|collapseActionView"app:actionViewClass=“androidx.appcompat.widget.SearchView”加上android:actionViewClass="android.widget.SearchView"属性后,此条MenuIte.原创 2020-08-13 17:47:00 · 608 阅读 · 0 评论 -
Android发展史(Android各版本特性-知识篇)
Android发展史https://blog.csdn.net/u012964796/article/details/50662564?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.channel_paramA原创 2020-08-13 17:15:30 · 325 阅读 · 0 评论 -
Android如何获取视频的大小、视频宽高
MediaMetadataRetriever retriever = new MediaMetadataRetriever(); retriever.setDataSource(path); String width = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH); //宽 String height = retriever.extractMe...原创 2020-08-12 16:28:41 · 5694 阅读 · 0 评论 -
Android开发版本和API等级对应关系
原创 2020-07-31 17:57:34 · 824 阅读 · 0 评论 -
再也别说你不会 ShimmerFrameLayout ,真的超级容易 【开发必备】
1、shimmer-android是Facebook出品的给任意视图添加微光效果的第三方库。2、配置dependencies { implementation 'com.facebook.shimmer:shimmer:0.4.0' } 3、基本使用 <com.facebook.shimmer.ShimmerFrameLayout android:id="@+id/shimmer_view_container" android:layout_w原创 2020-07-31 09:51:42 · 2091 阅读 · 0 评论 -
JAVA数组之间的复制,Android实现Activity多重跳转的一个小技巧
1、当Activity跳转偶遇单身多年的老汉原文链接:https://www.jianshu.com/p/579f1f1181612、JAVA数组之间的复制本文主讲JAVA数组之间的复制,需要了解Activity多重跳转的可以根据标题1跳转浏览即可。System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。查阅api,它的函数原型为:public static void arraycopy(Object src, int srcPos, Object dest,原创 2020-07-30 10:34:00 · 155 阅读 · 0 评论 -
Activity在后台销毁的时候,如何保存和恢复状态还有数据
当Activity在后台销毁的时候,如何保存和恢复状态还有数据。答案:a、调用 onSaveInstanceState() 方法保存数据。b、在 onCreate() 中恢复保存的数据 //调用(a) @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveIns...原创 2019-09-03 19:43:18 · 2311 阅读 · 0 评论 -
Android(01)-进程间的通信机制
Linux系统将自身划分为两部分,一部分为核心软件,即是kernel,也称作内核空间,另一部分为普通应用程序,这部分称为用户空间。用户空间中的代码运行在较低的特权级别上,只能看到允许它们使用的部分系统资源,并且不能使用某些特定的系统功能,也不能直接访问内核空间和硬件设备,以及其他一些具体的使用限制。原创 2019-07-23 00:01:32 · 153 阅读 · 0 评论