安卓开发
bayanhot
星星之火 可以燎原
展开
-
移动开发——安卓开发面试必备的基础知识(二)
各位朋友,大家好: 我是安卓开发者SGY,这是我写的第2篇博客,主要对安卓开发面试必备的基础知识进行梳理,进行深入理解还需查阅相关资料,有不合理的地方希望各位朋友及时提出宝贵意见,我会及时进行修正。一、关于Handler handler是一个消息分发对象,通过发送和处理Message和Runnable对象来关联对应线程的Messag...原创 2018-04-14 18:32:17 · 754 阅读 · 0 评论 -
开源库Toaster的使用介绍
Toast工具类有很多,下面介绍我写的一个Toast工具类,使用比较方便和灵活Toaster地址a convenient toast util一个简单方便的Toast工具类实现了基本Toast显示,通过改变字体颜色,背景样式,显示位置,以及基于他们的组合,实现灵活的Toast显示由于日常很少用到长时间的Toast显示,所以本库均使用默认短时间显示2s基本使用步骤如下:...原创 2019-07-08 09:15:13 · 1321 阅读 · 0 评论 -
RecyclerView等列表item适配,文字显示不全,被遮挡的解决方式
在布局列表item时,会遇到下面这样的情况,就是文字显示不全或被遮挡。但是你会发现,没有图片的item显示正常,只有有图片的才会出现这样的情况所以,原因就出在图片的布局设置上。解决方式:将图片的高度由wrap_content改为为match_parent即可 <ImageView android:id="@+id/id_img" ...原创 2019-07-03 11:35:58 · 3148 阅读 · 0 评论 -
Android面试之百题经典之Java相关答案——synchronized,https,Socket,泛型,CyclicBarrier,GC,volatile,SparseArray,Dalvik
一、线程中sleep和wait的区别1,这两个方法来自不同的类分别是Thread和Object2,最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法3,wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用二、Thread中的start()和run()方法有什么区别s...原创 2019-07-15 13:19:36 · 566 阅读 · 0 评论 -
解决GridView只显示一行的问题
当GridView嵌套在其他布局中,我们会发现有GridView只显示一行的情况,如果将高度给一个固定值,则可以显示,但这不是我们想要的,解决方案如下:自定义GridView,重写onMeasure方法直接使用以下自定义类即可/** * author SGY * date 2019/7/1 * desc */public class AllShowGridView ext...原创 2019-07-12 12:24:17 · 1481 阅读 · 0 评论 -
RecyclerView中Item不能居中显示问题的解决
在进行RecyclerView的item布局时,如果将item的布局控件居中显示,运行后会发现还是左对齐,其实这个问题的解决方法很简单:在RecyclerView的Adapter的onCreateViewHolder方法中,创建View使用如下方式: View view = LayoutInflater.from(context).inflate(R.layout....原创 2019-07-04 22:14:05 · 4697 阅读 · 0 评论 -
使用谷歌官方SwipeRefreshLayout+Recyclerview实现下拉刷新和上拉加载
目前市场上已经有很多成熟的刷新框架,本文主要说一下利用谷歌官方提供的SwipeRefreshLayout实现下拉刷新和上拉加载。使用SwipeRefreshLayout的步骤比较简单,,就两步:1,添加布局组件2,实现下拉刷新 <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/...原创 2019-07-05 00:14:26 · 448 阅读 · 0 评论 -
Android面试之百题经典——含Java、数据结构与算法、Android三方面的面试题
Android面试涉及到的知识点相对较多,总结下来,大致分为以下几方面:Java相关:(答案地址)1、线程中sleep和wait的区别2、Thread中的start()和run()方法有什么区别3、关键字final和static是怎么使用的4、String,StringBuffer,StringBuilder区别5、Java中重载和重写的区别6、equals跟...原创 2019-07-11 11:03:39 · 771 阅读 · 0 评论 -
ViewPager禁止左右滑动切换,去除点击切换效果
方法很简单,自定义一个ViewPager,重写事件处理方法和切换方法public class NoScrollViewPager extends ViewPager { private boolean noScroll = true; public NoScrollViewPager(@NonNull Context context, @Nullable Attribut...原创 2019-07-01 11:56:51 · 2568 阅读 · 0 评论 -
Android Studio自定义(取消)TitleBar,改变通知栏背景色
自定义TitleBar步骤相对简单:1,自定义标题栏布局这个过于简单,自行搜索,简单的标题栏可直接使用LinearLayout布局2,使用自定义标题栏就是在主页布局中使用自定义标题栏title_bar即自定义的布局<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.an...原创 2019-07-01 12:35:59 · 1047 阅读 · 0 评论 -
Android面试之百题经典Android答案——cookie,session,JNI,AIDL,Binder,ClassLoader,AMS,WMS,PWS,热更新,插件化,Hook,dex
一、Activity生命周期实际面试中可能会以实例形式出现,比如:启动A,再从A启动B,请描述各生命周期二、Activity的启动模式Activity的启动模式有4种,分别是Standard、SingleTop、SingleTask、SingleInstanceStandard模式:这种模式下,Activity可以有多个实例,每次启动Activity,无论任务栈中是否已经有这个...原创 2019-07-18 10:51:16 · 2079 阅读 · 0 评论 -
Android中对服务Service的理解,Service生命周期学习,如何启动Service及代码验证
1,对服务Service的理解:Android 服务(Service)适合执行那些不需要和用户交互而且还要求长期运行的任务。服务的运行不依赖于任何用户界面,即使 APP 被切换到后台,或者打开了另外一个 APP,服务仍然能够保持正常运行但是当某个 APP 进程被杀掉时,那么这个 APP 所创建的所有服务也就停止了另外,服务本身并不会自动开启线程,服务代码默认是运行在主线程中的。所以如...原创 2019-07-16 00:26:42 · 1573 阅读 · 0 评论 -
使用TabLayout+ViewPager+Fragment实现切页展示
使用TabLayout+ViewPager+Fragment是比较常见的实现切页展示的方式,本例是在fragment中实现主要代码步骤:1,定义TabLayout和ViewPager的布局2,实现tab切换3,实现Fragment4,实现Fragment适配器5,将tab与viewpager关联1,定义TabLayout和ViewPager的布局<an...原创 2019-07-02 12:58:00 · 830 阅读 · 2 评论 -
解决ViewPager中添加fragment,fragment中使用GridView控件不显示,控件重叠的问题
一个主Activity中使用ViewPager,ViewPager中添加多个Fragment,在Fragment中使用GridView时控件不显示,或是显示重叠的问题解决:首先排查viewpager设置了适配器,并且适配器中有数据,有一种情况是gridview的item过小,被标题栏挡住了。可以设置图片宽高为具体值比如200dp。这样就可以确定是否被标题栏挡住。下面展示gridvie...原创 2019-07-01 17:58:19 · 934 阅读 · 0 评论 -
Android常用框架_2019最新集合
Android常用优秀开源框架整理Android开发常用框架汇总【Android学习】Android常用框架Android开发常用开源框架Android开发常用框架汇总(转)25个Android酷炫开源UI框架Android 通用流行框架汇总(持续更新中)Android 2018优秀开源框架整理收藏...原创 2019-04-02 20:54:59 · 2898 阅读 · 0 评论 -
移动开发——安卓开发面试必备的基础知识(一)
各位朋友,大家好: 我是安卓开发者SGY,这是我写的第一篇博客,主要对安卓开发面试必备的基础知识进行梳理,进行深入理解还需查阅相关资料,有不合理的地方希望各位朋友及时提出宝贵意见,我会及时进行修正。 一、关于Activity 关于Activity必须要了解的内容有:Activity的生命周期、android任务栈、Activity启动模式、scheme跳转协议。...原创 2018-04-14 14:41:46 · 4880 阅读 · 1 评论 -
RecyclerView的Adapter标准写法
package adapter;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import a...原创 2018-05-12 11:26:47 · 1850 阅读 · 0 评论 -
Git的基本使用--精简版
Git是一个版本控制工具,或者叫代码管理工具,它的优点就不说了,现在很多公司和项目都使用Git来管理项目代码。 Git的安装、使用网上有很多教程,包括:廖雪峰的官方网站等等,都比较全面。 本文主要说一下Git的基本使用:1,打开Git Bash(Windows自带的cmd命令行也可以),2,切换盘符:默认是在c盘的,比如切换到d盘,直接输入d:然后回车,再输入cd 你的项...原创 2018-06-11 18:16:43 · 700 阅读 · 1 评论 -
关于集成百度地图时出现"鉴权错误信息-- 请仔细核查 SHA1、package与key申请信息是否对应,key是否删除,平台是否匹配"的解决方案
在集成百度地图时出现如下错误:一般是由于:直接拷贝了别人的文件包运行在自己的电脑上导致的,解决方案如下:1,到百度地图平台重新申请一个key2,在文件中替换原有的key3,运行相关链接如下:百度地图开放平台:http://lbsyun.baidu.com/还没用过的请自觉到以上官网学习流程,大致步骤如下:1,注册账户并登陆平台;2,进入控制台;3,创建应用;4,复制...原创 2018-09-19 11:55:16 · 8751 阅读 · 2 评论 -
Android Studio中如何一行代码改变Button背景图片的颜色
之前在安卓开发中对按钮状态的切换一直使用selector,最近接触到tint这个属性,就简单说一下,tint是Android5.0系统后引入的一个新属性,可以对视图进行颜色渲染。 废话不多说,直接看代码: public void setButtonImgStyle(ImageButton button, int drawable, int color) {...原创 2018-10-30 16:14:29 · 26106 阅读 · 0 评论 -
Glide找不到placeholder的解决方案
解决前: Glide.with(context).load(R.drawable.ic_launcher) .placeholder(R.drawable.ic_launcher).into(imageView);解决后: RequestOptions re...原创 2019-01-06 20:53:09 · 5005 阅读 · 0 评论 -
activity跳转如何取消跳转动画
开发时,会遇到这种情况,两个activity有不同的业务,但跳转时需要让用户感觉在一个页面,这时只需要取消跳转动画即可,这里只用最简单的方式来实现。 activity跳转activity: activity启动:Intent intent=new Intent(this,MainActivity.class); s...原创 2019-03-18 12:11:28 · 8767 阅读 · 0 评论 -
android studio项目如何打包
我们在一个项目开发测试中和项目完成时,通常需要打包,以提供给他人apk文件,下面简单介绍一下android studio打包流程第一步:按下图所示进入打包流程第二步:studio版本在3.3以上的会出现下图所示,选择apk,点击next。较低版本的会直接进入第三步第四步:第一次打包需要创建key文件,点击Create new第五步:点击path右侧文件夹图标这里...原创 2019-03-19 12:31:23 · 11716 阅读 · 0 评论 -
正则匹配学习,示例:包含a和b,包含a不包含b,包含a不包含b和c
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意...原创 2019-03-23 15:03:05 · 24913 阅读 · 6 评论 -
Android读取通讯录数据
第一步,配置权限<uses-permission android:name="android.permission.READ_CONTACTS" /><!-- 读取联系人 --> <uses-permission android:name="android.permission.WRITE_CONTACTS" />如果需要存储,还需要存储权限...原创 2019-04-01 13:47:54 · 3190 阅读 · 0 评论 -
AndroidVideoCache库的基本使用
开发中遇到需要缓存的需求,一开始我是用DiskLruCache,但是在获取缓存的时候遇到点麻烦,获取缓存返回的是输入流,可以直接通过工厂类转换到图片,但是没有直接转为音频的方式,所以,找到AndroidVideoCache这个库,集成简单,方便易用。第一步:添加依赖dependencies { compile 'com.danikula:videocache:2.7.1'}...原创 2019-04-01 23:38:50 · 2225 阅读 · 0 评论 -
Android app优化:性能优化、内存优化、启动优化、图片优化、布局优化、响应优化、电量优化、网络优化、安装包优化
性能优化:性能优化是一个宽泛的概念,以下的优化都可以认为是性能优化的范畴。内存优化:常见的内存问题及优化方案1,内存泄漏:点击查看第二十三题答案2,内存抖动:避免频繁创建大量、临时的小对象3,图片Bitmap相关:点击查看第二十题答案4,代码质量 & 数量:减少不必要的类&对象,谨慎选用第三方库,代码混淆,选用合适数据结构5,日常不正确使用:基础要扎...原创 2019-07-18 14:10:20 · 494 阅读 · 0 评论