【Android】
文章平均质量分 81
淡然一笑、
选择相信,相信自己,相信未来,相信美好!
展开
-
Robolectric首次运行问题
当你大概看了下如何使用Robolectric后,是不是就急不可耐的开始上手练习了呢?配置了依赖项,编写个测试类,再简单写个测试方法,点击run……等了好久,是不是疑惑:怎么这个测试方法还没执行完成? 那你是不是卡在了下面这个步骤?或者发现报了个莫名其妙的错误?类似于下面这样?[Robolectric] com.tavultesoft.kmea.packages.PackageProcessorTest.test_load_GFF_KMP_keyboards: sdk=28; resources=B原创 2021-01-24 21:51:14 · 542 阅读 · 2 评论 -
Android Studio 文件提前结束
正在运行项目时,突然停电,再打开项目时,总是编译失败,报错 : 文件提前结束 !尝试了删除.gradle 、.idea都不行,以为是项目出了问题,删掉重新pull了一份 app代码(工程根文件夹没换,如果新建应该没问题)也不行!最终解决办法:找到项目的根目录,显示隐藏文件,找到/.idea/workspace.xml ,删除,重新编译项目成功幸亏找到了下面这个解答,非常感谢!工具出问题真的...原创 2019-11-07 17:18:19 · 1120 阅读 · 0 评论 -
windowSoftInputMode
今天在项目中遇到了一个软键盘遮挡住输入框的特殊案例,经过和搭档的研究,终于完美解决了。写下这篇文章,记录一下,顺便回顾学习windowSoftInputMode系列属性以及软键盘的相关知识。windowSoftInputMode下面是windowSoftInputMode的DocumentationFormats: flagValues: adjustNothing, adjustPa...原创 2019-10-13 14:12:20 · 260 阅读 · 0 评论 -
maxEms和maxLength的区别
1. maxWidthmaxWidth指的是控件自己的最大宽度,当控件的属性layout_width=”wrap_content”时生效,若layout_width指定了具体的值,则maxWidth失效。2. maxLengthmaxLength限制TextView中显示的字符的个数。需要特别注意的是,在这里汉字、数字、英文字母、标点符号等,都理解为一个字符。maxLength属性会使...原创 2019-10-13 14:12:06 · 1588 阅读 · 0 评论 -
签名文件修改
1. 开始win+r > cmd进入命令行,切换到签名文件所在文件夹2. 修改签名文件的别名alias:keytool -changealias -keystore 签名文件名称 -alias 原别名 -destalias 新别名回车后输入密码确认3. 修改签名文件的别名alias对应的密码:keytool -keypasswd -keystore 签名文件名称 -a...原创 2019-10-13 14:11:44 · 788 阅读 · 0 评论 -
RxJava 速查
文章目录一、RxJava、RxAndroid二、角色三、事件四、操作符五、调度器一、RxJava、RxAndroidRxjavaRxJava: Reactive Extensions for the JVM异步、观察者模式扩展、函数式编程RxAndroidRxAndroid: Reactive Extensions for AndroidRxAndroid是RxJava的一个针对A...原创 2019-10-13 14:10:46 · 112 阅读 · 0 评论 -
启动页设置全屏并适配刘海屏
需求:启动页是一张图片,希望设置为全屏显示,包括状态栏和导航栏(虚拟按键),同时也适应刘海屏正确的设置方式:values/styles.xml<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/col...原创 2019-10-13 14:06:46 · 2828 阅读 · 1 评论 -
Fragment被replace时重复加载数据的问题
Fragment被replace时,会重新走onCreateView()等生命周期,我们写的初始化数据的相关逻辑也会重走,并且重复添加,解决问题的办法有两个##第一种:在fragment中解决private View view;@Override public View onCreateView(LayoutInflater inflater, ViewGroup container,...原创 2019-10-13 14:05:48 · 1046 阅读 · 0 评论 -
获取资源文件资源数组
在获取图片资源数组时遇到以下问题:在res/value中定义资源文件fileName.xml,定义图片资源数组<?xml version="1.0" encoding="utf-8"?><resources> <integer-array name="store_other_image_array"> <item>@...原创 2019-10-13 14:05:17 · 379 阅读 · 0 评论 -
自定义View(二)UI加载流程
一、分类在《Android开发艺术探索》中,刚哥将自定义View分为了四种,个人感觉很精确:继承View,创建新View继承ViewGroup,创建新Layout继承现有特定的View进行扩展,如继承Textview自定义字体继承现有特定的ViewGroup,进行自定义组合控件二、构造方法构造函数是View的入口,可以用于初始化一些的内容,和获取自定义属性。...原创 2019-10-13 14:04:43 · 241 阅读 · 0 评论 -
自定义View(一)基础知识
标签:【Android】UI 【Android】自定义View学习自定义View之前,我觉得要对View有一个深刻的理解,所以,我先找了相关资料进行恶补: 1. 任玉刚-《Android开发艺术探索》 2. 菜鸟窝-从源码角度分析UI绘制流程『公开课回放』 3. GcsSloop-自定义View教程 4. 朱凯-给高级 Android 工程师的进阶手册 5. 谷哥的小弟-自定义...原创 2019-10-13 14:02:08 · 303 阅读 · 0 评论 -
自定义View(零)自定义属性
一、为什么要自定义属性如果想使用一个属性,那么首先这个属性应该存在,所以,如果我们想在自定义View中扩展一些自定义的属性,我们就应该去创建出来这些属性,否则只能使用View的属性,因为所有的控件都继承自View二、自定义属性的步骤创建自定义Viewpublic class LinearLayout extends ViewGroup {}创建Value/attrs.xml...原创 2019-10-13 14:00:46 · 175 阅读 · 0 评论 -
Git 速查
文章目录参考Git工作流程专用名词常用命令1. 创建本地仓库2. 配置3. 增加/删除文件4. 提交代码5. 分支6. 标签7. 查看信息8. 远程同步9. 撤销10. 储藏11. 其他忽略文件参考1. 廖雪峰Git教程2. 阮一峰的网络日志《常用Git命令清单》首先,我按照廖雪峰的Git教程学习,将教程中的各种命令实践了一遍,并记录了下来,但比较杂乱;然后发现了阮一峰总结的清单,分类...原创 2019-08-16 16:22:39 · 279 阅读 · 0 评论 -
学习笔记:Recyclerview、SwipeRefreshLayout、Cardview的使用
一、Recyclerview1.简介Recyclerview是Android 5.0新增的一个列表控件。顾名思义,recycler view,只负责回收和复用视图,高度的解耦,可灵活定制,轻松实现Listview、GridView、瀑布流的效果。优点:item复用 把ViewHolder的实现封装起来,规范了ViewHolder,把item的view写入ViewHolder...原创 2018-01-11 11:54:50 · 358 阅读 · 0 评论 -
Android必知又爱忘的知识
一、Android是什么?Android是世界上最受欢迎的移动操作系统,使用于手机,手表,平板电脑,电视等数十亿设备Android是一种基于Linux的开源的操作系统主要使用于移动智能设备,如智能手机、平板电脑和智能电视等二、Android发展历程2003年,Android操作系统由Andy Rubin的Android公司开始开发2005年,Google收购Android公司2...原创 2018-11-27 11:05:54 · 225 阅读 · 0 评论 -
Android 权限管理
文章目录一、权限简介二、6.0之前三、6.0之后四、统一管理五、开源方案一、权限简介Android安全体系结构的核心设计点是:默认情况下,任何应用程序都无权执行任何会对其他应用程序,操作系统或用户产生***负面影响***的操作。例如:读取或写入用户的私人数据(如联系人或电子邮件),读取或写入其他应用程序的文件,执行网络访问,保持设备唤醒等等。为了保护Android用户的隐私,避免上述负面影响...原创 2019-06-25 10:40:50 · 411 阅读 · 0 评论 -
Android四大组件之Activity
一、简介Activity是Android四大组件之一,对应着应用的一个个界面。Activity实现了Window.Callback和KeyEvent.Callback两个接口,所以用户通过屏幕点击或点击按键可以和Activity交互。创建Activity就是继承Activity创建子类,必须在清单文...原创 2018-12-17 14:20:46 · 372 阅读 · 0 评论 -
Android四大组件之Service
一、 Service简介Service 是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。其他应用组件启动服务,而且即使用户切换到其他应用,服务仍将在后台继续运行。 组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC)。 例如,服务可以处理网络事务、播放音乐,执行文件 I/...原创 2018-12-17 14:25:12 · 204 阅读 · 0 评论 -
Android 开发环境搭建
Android开发环境搭建和Java开发环境搭建类似,只不过是开发工具不同。1. JDK下载安装配置参阅JDK下载安装与环境变量配置2. Android studio下载安装下载地址一:AndroidDevTools 下载地址二:Android Developers 下载完成后,傻瓜式安装,一直点击下一步即可3. Android studio配置参...原创 2018-04-22 13:58:40 · 1371 阅读 · 0 评论 -
Android studio偏好配置
窗口字体设置控制台字体设置Logcat颜色设置 级别 颜色VERBOSE BBBBBBDEBUG 0070BBINFO 48BB31WARN BBBB23ERROR FF0006ASSERT 8F0005快速文档设置代码字体设置代码背景设置(护眼模式)自动导包设置代码提示...原创 2018-04-09 17:18:18 · 3000 阅读 · 0 评论 -
工作笔记:Android支付宝与微信支付
开始前要知道的: 调用第三方的支付真的不难! 建议大家开发时,先把两张流程图仔细看一遍,相信对大家一定有帮助;最后就是,多翻看开发文档!一、支付宝支付1. 支付宝支付流程图2. 集成前准备注册、登录 蚂蚁金服开放平台 【运营搞】创建应用,添加APP支付功能找到APP支付开发文档,下载 SDK&Demo3.原创 2018-01-11 14:54:03 · 7331 阅读 · 6 评论 -
Android三大动画使用总结
动画在Android开发中比较常用,主要有:帧动画、补间动画、属性动画(3.0增加),下面开始学习:一、Frame Animation1、简介Frame Animation,逐帧动画是一种常见的动画形式,其原理是在“连续的关键帧”中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画。简单理解:连续播放准备好的关键帧图片,形成动画2、xml实现先创建帧动...原创 2019-01-13 11:15:39 · 3106 阅读 · 0 评论 -
ConstraintLayout 约束布局
一、简介ConstraintLayout是一个ViewGroup,它允许您以一种灵活的方式定位和调整小部件的大小。借鉴于iOS中的约束,也是Relative的加强版。android.support.constraint.ConstraintLayout在兼容库中,支持Android API 9也就是Android2.3及以上系统版本,拖拽操作进行可视化布局需要在Android Studio ...原创 2018-12-19 18:22:40 · 705 阅读 · 0 评论 -
GridLayout 使用总结
一、简介GridLayout是Android4.0引入的网格布局,使用它可以减少布局嵌套。也算是常用,但一直没仔细看过,今天研究一下二、常用属性介绍GridLayout 使用属性 属性 作用 android:columnCount 最大列数 android:rowCount 最大行数 android:orientation Gr...原创 2018-03-27 13:20:17 · 48843 阅读 · 3 评论 -
View.inflate()和LayoutInflater.inflate()的区别
一、LayoutInflater.inflate()该方法适用于所有布局填充的的场景,但使用前需要先实例化LayoutInflater对象1. 获取LayoutInflater实例getLayoutInflater();这个方法可以在Activity和Fragment中使用,不过在Fragment中使用时,要传入一个bundle参数// Activity中使用LayoutInflater layoutInflater = getLayoutInflater();// Fragment中使用原创 2018-03-01 11:42:17 · 7241 阅读 · 2 评论 -
ViewPager 全面总结
一、简介Viewpager,视图翻页工具,提供了多页面切换的效果。Android 3.0后引入的一个UI控件,位于v4包中。低版本使用需要导入v4包,但是现在我们开发的APP一般不再兼容3.0及以下的系统版本,另外现在大多数使用Android studio进行开发,默认导入v7包,v7包含了v4,所以不用导包,越来越方便了。Viewpager使用起来就是我们通过创建adapter给它填充多...原创 2018-03-01 11:41:14 · 83207 阅读 · 21 评论 -
学习笔记:SpannableString的使用
1. 简介SpannableString其实和String一样,都是一种字符串类型,同样TextView也可以直接设置SpannableString作为显示文本,不同的是SpannableString可以通过使用其方法setSpan方法实现字符串各种形式风格的显示,重要的是可以指定设置的区间,也就是为字符串指定下标区间内的子字符串设置格式。2.原创 2018-02-06 16:39:01 · 375 阅读 · 0 评论 -
学习笔记: DrawerLayout、NavigationView、FloatingActionButton、SnakeBar的使用
一、一键生成 project &gt; new Moudle &gt; phone &amp; Tablet Moudle &gt; Navigation Drawer Activity下面我们开始一步步实现上面的效果,学习各个新控件的使用方法二、DrawerLayout1. 简介DrawerLayout,v4包提供的一个实现滑动菜单效果的控件。2. ...原创 2018-01-11 12:11:26 · 573 阅读 · 0 评论 -
学习笔记:CoordinatorLayout、AppbarLayout、CollapsingToolbarLayout实现酷炫标题栏
一、前言 依赖关系: CollapsingToolbarLayout &gt; AppbarLayout &gt; CoordinatorLayoutCollapsingToolbarLayout,用来包装Toolbar实现可折叠标题栏,必须作为AppbarLayout的直接子view使用;AppbarLayout又要作为CoordinatorLayout的直接子view使用,...原创 2018-01-11 12:08:20 · 757 阅读 · 0 评论 -
学习笔记:TabLayout 全面总结
一、简介TabLayout提供了一个水平布局用于展示tabs,继承自HorizontalScrollView。一般与Viewpager结合使用实现页面和标签联动的效果,是时下APP中非常常用的一个控件二、基本用法1. 添加design依赖compile 'com.android.support:design:25.3.1'2. xml引用1. xml中添...原创 2018-01-11 12:02:02 · 23834 阅读 · 17 评论 -
学习笔记:Toolbar、ActionMenuView的使用
一、隐藏ActionBar方式1. 代码中隐藏public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);...原创 2018-01-11 10:15:25 · 4782 阅读 · 2 评论 -
Android Fragment总结
一、简介Android 在 Android 3.0(API 级别 11)中引入了Fragment,主要是为了给大屏幕(如平板电脑)上更加动态和灵活的 UI 设计提供支持。Fragment 表示 Activity 中的行为或用户界面部分。您可以将多个Fragment组合在一个 Activity ...原创 2018-12-17 14:32:57 · 426 阅读 · 0 评论 -
Android四大组件之ContentProvider
一、简介ContentProvider管理对结构化数据集的访问。它们封装数据并通过ContentResolver接口将其提供给应用程序,并提供用于定义数据安全性的机制。只有在需要在多个应用程序之间共享数据时,才需要内容提供程序。例如,联系人数据由多个应用程序使用,必须存储在内容提供程序中...原创 2018-12-17 14:30:05 · 213 阅读 · 0 评论 -
Android四大组件之BroadcastReceiver
一、简介用于接收和处理Context.sendBroadcast(Intent)发送的广播意图的代码的基类。您可以使用Context.registerReceiver()动态注册该类的实例,也可以使用AndroidManifest.xml中的 &amp;amp;lt;receiver&amp;amp;gt; 标记 ...原创 2018-12-17 14:27:04 · 175 阅读 · 0 评论