android
文章平均质量分 50
android学习
笔画888
这个作者很懒,什么都没留下…
展开
-
Android中Activity、Window、PhoneWindow和DecorView之间的关系
前言笔者在学习android过程中经常搞混Activity、Window、PhoneWindow和DecorView之间的关系,因此特地花点时间去理清它们之间的关系,并做此记录,将来忘了可以回头来看看,也希望能帮到需要的读者。(以下截图均为Android对应源码)正文1. 每一个Activity都持有一个Window对象,通过getWindow()方法获得,如下:2. 而Window本身是一个抽象类,它有一个唯一的实现类就是PhoneWindow:3. 也就是说,Activity持有的这一个W原创 2021-01-10 09:20:42 · 975 阅读 · 2 评论 -
Android事件分发机制
Android事件分发机制1.触摸事件及MotionEvent2.事件分发机制概述3.事件从触摸到View树流程4.View的事件分发机制的实例演示5.问题解答6.总结1.触摸事件及MotionEvent在学习事件的分发机制前,我们要先了解下什么是触摸事件。触摸事件就是捕获触摸屏幕后产生的事件。比如当点击一个button的时候,通常就会产生两个或者三个事件——按钮按下,这是事件一;如果不小心滑动一下,这是事件二;当手抬起,这是事件三。Android为触摸事件封装了一个类——MotionEvent。只要是原创 2020-06-18 21:06:39 · 338 阅读 · 0 评论 -
Android中asset文件夹和raw文件夹区别
res/raw和assets的相同点:1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制res/raw和assets的不同点:1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹读取文件资源:1.读取res/ra原创 2020-06-03 15:48:56 · 246 阅读 · 0 评论 -
Windows显示grep不是内部或外部命令,也不是可运行的程序或批处理文件
在android开发中,经常需要用到adb指令,在此记录自己遇到的一个坑,就是想查看android应用开启的进程时,用grep来过滤进程,报错如下:解决办法:根本不是grep的问题,凡是有shell命令后面语句都要加"",之后就可以正常运行了。adb shell “ps|grep com.example”,这样就ok了...原创 2020-06-03 15:42:04 · 6191 阅读 · 3 评论 -
安卓保证TextView一直跑马灯的做法
问题需要跑马灯的TextView和其他的View在同一个ViewGroup下, 有时候需要改动这个ViewGroup下其他View的LayoutParam,这个修改过程可能导致TextView暂时性失去焦点,表现为跑马灯效果会被重置,很难看。解决方法一般是采取隔离政策,把其他需要改动LayoutParam的View和跑马灯的TextView隔离开,用一个FrameLayout隔离一下。 <FrameLayout android:layout_width="0dp"原创 2020-05-26 12:07:00 · 373 阅读 · 0 评论 -
android修改SeekBar默认样式
最近在写android小项目的时候需要用到SeekBar控件,由于我把activity的背景设置为黑色,所以默认的SeekBar在黑色背景会出现背景进度条被黑色覆盖看不见的情况,如下图所示,后面的背景没了,不美观。后来经查资料,修改SeekBar默认样式,progressDrawable可以改变背景颜色,这里改为白色,但是会发现SeekBar变大了,背景非常不美观,故需要设置maxHeight和minHeight,改变SeekBar的宽度,如下图。改变完效果如下图下面那条SeekBar的样式。显然还原创 2020-05-19 00:32:37 · 1486 阅读 · 1 评论 -
Kotlin语法学习(下)
前言之前写过一篇Kotlin语法学习(上)https://blog.csdn.net/weixin_43615488/article/details/105952090,讲述的是kotlin的基础语法,这篇主要将kotlin的其他一些特性及用法1. 标准函数with、run和apply(1)with函数接收两个参数,第一个参数可以是任意类型的对象,第二个参数是一个Lambda表达式。with函数会在Lambda表达式中提供第一个参数对象的上下文,并使用Lambda表达式的最后一行代码作为返回值返回f原创 2020-05-11 22:04:13 · 186 阅读 · 0 评论 -
Kotlin语法学习(上)
前言本人主要学习android开发,之前一直用的编程语言是java。Google在2019年的I/O大会上宣布Kotlin已经成为Android开发的第一语言,更加推荐使用Kotlin来编写Android应用程序。说实话,我刚开始是有点抵触情绪的,哎,java写的好好的,又得去学习新的Kotlin语法,太难了。但是没办法,总得拥抱变化吧。那就学咯,在此记录下Kotlin的语法,方便自己查阅,也方...原创 2020-05-11 11:12:33 · 180 阅读 · 0 评论 -
android EventBus的简单使用
1 前言当我们进行项目开发的时候,往往是需要应用程序的各组件、组件与后台线程间进行通信,比如在子线程中进行请求数据,当数据请求完毕后通过Handler或者是广播通知UI,而两个Fragment之家可以通过Listener进行通信等等。当我们的项目越来越复杂,使用Intent、Handler、Broadcast进行模块间通信、模块与后台线程进行通信时,代码量大,而且高度耦合。现在就让我们来学习一下...原创 2020-03-08 22:18:51 · 234 阅读 · 0 评论 -
Android 5.0到10.0版本的重大变化
Android 5.0Material DesignAndroid 6.0官方指纹支持运行时权限机制->需要动态申请权限Android 7.0多窗口模式支持Java 8语言平台Android 8.0广播接收者不能静态注册发送通知必须用通知渠道才能成功发送Android 9.0刘海屏 API 支持限制明文流量的网络请求 httpAndroid 10暗黑模式隐私增...原创 2020-03-06 21:59:40 · 840 阅读 · 0 评论 -
Android布局优化之ViewStub、include、merge使用
原文链接:https://blog.csdn.net/bboyfeiyu/article/details/45869393原创 2020-03-06 16:15:58 · 149 阅读 · 0 评论 -
android配置gradle阿里云镜像站
android studio或idea生成的android项目,默认声明jcenter()与google()配置:我们可以在项目下的build.gradle中看到:当然,没有梯子的话,可以用阿里云镜像站,将这两行配置修改为以下三行代码:maven {url'https://maven.aliyun.com/repository/google'} maven {url'https://m...原创 2020-02-28 17:14:14 · 968 阅读 · 0 评论 -
android配置ButterKnife
ButterKnife是一个专注于Android系统的View注入框架,以前总是要写很多findViewById来找到View对象,有了ButterKnife可以很轻松的省去这些步骤。是大神JakeWharton的力作,目前使用很广。最重要的一点,使用ButterKnife对性能基本没有损失,因为ButterKnife用到的注解并不是在运行时反射的,而是在编译的时候生成新的class。项目集成起来...原创 2020-02-27 22:22:43 · 132 阅读 · 0 评论 -
android实现简单的切换StatusBar和ActionBar的颜色
android实现简单的切换StatusBar和ActionBar的颜色只需要在需要切换的Activity中执行如下代码:ActionBar ab = getSupportActionBar(); if(ab != null) { ab.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color...原创 2020-02-27 11:10:11 · 228 阅读 · 0 评论 -
android app启动动画的实现
android app启动动画的实现:先出现app logo再出现注册登录界面先看看效果图下面介绍具体实现步骤1 MainActivity代码实现:主要是动画的切换public class MainActivity extends AppCompatActivity { ImageView logoView; View loginFragment; View r...原创 2020-02-07 18:15:35 · 5053 阅读 · 0 评论 -
android布局文件夹layout下分模块,使布局更易管理
android布局文件夹layout下分模块,使布局更易管理1.在app下的build.gradle中增加如下配置代码def listSubFile={ def layoutFolder='src/main/res/layout' def files=file(layoutFolder).listFiles() def folders=[] ...原创 2020-01-29 16:12:36 · 1247 阅读 · 6 评论 -
android 实现图片预览、滑动轮播和双指缩放
android 实现图片预览、滑动轮播和双指缩放最近大作业项目中用到了android图片预览、滑动轮播和双指缩放功能,单独抽离出来,变成一个可以复用的模块,相关代码已经上传到github:https://github.com/poxiaozheng/ImageDealWith.git.效果图如下:...原创 2020-01-21 13:53:33 · 591 阅读 · 2 评论 -
android fastjson的使用
android fastjson的使用build.gradle中引依赖:implementation 'com.alibaba:fastjson:1.1.71.android'具体用法,各种形式的转换List<Student> list=new ArrayList<>(); Student student=new Student("bob",24)...原创 2020-01-11 11:02:38 · 3726 阅读 · 0 评论 -
Android DrawerLayout实现NavigationView不记住上次所选选项
Android DrawLayout和NavigationView优化android自带DrawLayout和NavigationView,使得我们可以将一些菜单隐藏起来,而不是放置在主屏幕上,然后可以通过滑动的方式将菜单显示出来,这种方式既节省了屏幕空间,又实现了非常好的动画效果,使用起来也很方便。之前使用的时候,在navigation上选中某个item后,退出drawLayout,默认会记住...原创 2020-01-10 20:42:07 · 417 阅读 · 0 评论 -
android调色器的实现
android调色器的实现最近在github上发现一个比较好用的调色器,写出来和大家分享下,用法也超级简单。先看效果图吧。 1.首先需要引用一个库,在app文件夹下的build.gradle里添加库“colorpicker”,我的颜色选择结果用一个矩形来展现,这里用到了circleimageview,故一起引用了。implementation 'com.dingmouren.colorpi...原创 2020-01-10 17:18:11 · 1805 阅读 · 0 评论 -
android EditText处理焦点问题和键盘收起问题
android EditText处理焦点问题和键盘收起问题android经常需要用到搜索框,一个EditText和一个搜索按钮,本文介绍的是处理EditText焦点和键盘收起问题。为了方便起见,所有函数都写在MainActivity中了。主要达到效果:进入界面后EditText默认不获取焦点,点击后才获取。点击搜索按钮后EditText失去焦点,开始搜索,收起软键盘。主要是写了三个功能函数,...原创 2020-01-10 16:34:02 · 2453 阅读 · 0 评论 -
android自定义Button背景和EditText背景
android自定义Button背景、EditText背景为了界面的美观,我们经常需要自定义系统自带的Button和EditText控件,下面我实现了button去掉边框、点击button字体变色和editText矩形框背景,借以美化登录界面。先上图片:1.在res文件夹下的drawable文件夹里新建edittext_background.xml,实现editText矩形边框<?...原创 2020-01-09 10:59:49 · 570 阅读 · 0 评论 -
Android TabLayout 实现底部导航栏和顶部导航栏
Android TabLayout 实现底部导航栏和顶部导航栏写在前面底部导航栏的实现方法及代码顶部导航栏的实现总结写在前面做为一名刚入门的Android个人开发者,最近在学习如何实现一个简易的导航栏,下面是我的实现具体步骤(idea集成Android Studio) 先来看看效果吧底部导航栏的实现方法及代码一、 配置 build.gradle (添加如下代码)implementa...原创 2019-10-14 23:34:10 · 3298 阅读 · 0 评论