Android
丶浅咸
这个作者很懒,什么都没留下…
展开
-
防手机锁屏解锁自定义View
文章目录一、简介二、ObjectAnimator与Scroller实现比较三、 Scroller实现核心1、锁屏解锁主要有两个关键点2、触摸手机滑动带动页面进行滑动3、手指离开屏幕判断是否解锁成功4、记得重写computeScroll方法让滑动生效四、 Scroller滑动实现自定义View的所有代码如下:五、 ObjectAnimator滑动实现自定义View的所有代码如下:六、 总结一、简介在Android应用开发的过程中,有的时候为了提高用户留存,我们就会给应用加入锁屏壁纸的功能。锁屏壁纸解锁的原创 2020-09-30 19:00:55 · 1944 阅读 · 0 评论 -
LeakCanary的简单使用
LeakCanary众所周知是很好用的一款内存泄漏查找工具,它的使用方法也比较简单。一、在AndroidApplication中调用安装LeakCanary软件 if (LeakCanary.isInAnalyzerProcess(this)) { return; } mRefWatcher = LeakCanary.install(...原创 2019-02-15 19:56:18 · 534 阅读 · 1 评论 -
Android界面编程
1.界面布局2.动画3.View焦点及事件响应机制4.尺寸单位了解5.资源分享1.界面布局线性布局 : 用来控制其子View以水平或垂直方式展开显示重要属性:orientation(方向)layout_weight(权重)特点:使用方向属性可以方便处理上下/左右结果的UI;使用权重可以ui均匀显示,同时在不同分辨率有较好适配能力 相对布局:用来控制其子View以相对定位...原创 2019-01-18 09:48:28 · 975 阅读 · 0 评论 -
EventBus使用详解
概述EventBus是一个Android事件发布/订阅框架,通过解耦发布者和订阅者简化Android事件传递,这里的事件可以理解为消息。事件传递既可以用于Android四大组件间通讯,也可以用于异步线程和主线程间通讯等。传统的事件传递方式包括:Handler、BroadcastReceiver、Interface回调,相比之下EventBus的有点是代码简洁,使用简单,并将事件发布和 订阅充...转载 2019-01-10 19:44:19 · 228 阅读 · 0 评论 -
【工具篇】Android studio 自定义注释快速生成
前言团队协作中,尽量保证各自代码自己维护。这样既能保证代码编写者在逻辑上的一惯性,也能避免修改不熟悉的代码而引起bug问题。但即使是这样的规避,也依然无法避免程序员之间代码的混合。所以,针对在一个类中,产出几个人同时需要添注的代码。最好能做代码注释的区分。这样为长时间后的代码维护,起到必要的指引作用。我们团队曾经就出现过这样的一个问题。在一个项目中的衔接代码处,由于一个程序员没有仔细检查代...转载 2018-09-19 09:21:53 · 2062 阅读 · 0 评论 -
Android总结篇系列:Android广播机制
1.Android广播机制概述Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。广播作为Android组件间的通信方式,可以使用的场景如下:1.同一app内部的同一组件内的消息通信(单个或多个线程之间);2.同一app内部的不同组件之间的消息通信(单个进程);3.同一app具有多个进程的不同组件之间...转载 2018-08-29 14:53:19 · 106 阅读 · 0 评论 -
一步一步学习Android TV/盒子开发(三)
本文主要说的就是在TV开发中常遇到的问题总结焦点丢失问题在使用ListView、GridView及RecyclerView时有时会出现,这时需要在xml中,添加android:descendantFocusability="afterDescendants"1 2这里会有三种方式分别为 beforeDescendants:viewgroup会优先其子类控件而获取到焦点...转载 2018-08-28 16:37:20 · 672 阅读 · 1 评论 -
一步一步学习Android TV/盒子开发(二)
TV、机顶盒开发调试不能像手机一样通过USB线连接调试,可通过ADB连接调试连接电视adb connect 10.74.84.1991 2连接后就可以开始开发调试了!断开连接// 断开某个设备adb disconnect 10.74.84.1991 2 3// 断开所有设备adb disconnect1 2 3常用的ADB命令...转载 2018-08-28 16:28:14 · 2362 阅读 · 4 评论 -
一步一步学习Android TV/盒子开发(一)
写在前面的话:本人做了几年的机顶盒和Android电视上的应用开发,写这些文章只是为了让初次接触大屏开发的同学能够快速上手。TV端因为没有触控操作,只有遥控操作,所以焦点处理、控制以及按键监听是其主要特点。焦点处理设置可获取焦点布局中需要设置某个控件可获取焦点需要加上:android:focusable="true"代码中:view.setFocusable(...转载 2018-08-28 16:26:21 · 3119 阅读 · 3 评论 -
Adroid简单使用蓝牙开发(1)
Android简单使用蓝牙开发虽然蓝牙传输速度很慢,但是在手机应用中使用得还是比较广泛的,由于蓝牙使用不需要网络等特点,它在智能家居中使用还是比较广泛的,比如说小区的门禁,很多门禁都会有蓝牙开锁的功能。蓝牙每次数据传输最多传送20个字节,相对其他传输协议,蓝牙传输是很慢的,它需要将许许多多的20个字节拼接成一个完整的包。不多说上下代码吧!推荐博客(https://blog.csdn.net/di...原创 2019-01-08 21:21:56 · 298 阅读 · 0 评论 -
Android 内存泄漏全解
Android 内存泄漏全解Java 中的内存分配主要是分三块:静态储存区:编译时就分配好,在程序整个运行期间都存在。它主要存放静态数据和常量。 栈区:当方法执行时,会在栈区内存中创建方法体内部的局部变量,方法结束后自动释放内存 堆区:通常存放 new 出来的对象。由 Java 垃圾回收器回收。栈与堆的区别栈内存用来存放局部变量和函数参数等。它是先进后出的队列,进出一一对应,...转载 2019-02-15 19:38:13 · 235 阅读 · 0 评论 -
Android的 onSaveInstanceState何时调用
onSaveInstanceState方法会在什么时候被执行,有这么几种情况:1、当用户按下HOME键时。这是显而易见的,系统不知道你按下HOME后要运行多少其他的程序,自然也不知道activity A是否会被销毁,故系统会调用onSaveInstanceState,让用户有机会保存某些非永久性的数据。以下几种情况的分析都遵循该原则2、长按HOME键,选择运行其他的程序时。3、按下...转载 2019-02-15 19:40:05 · 518 阅读 · 0 评论 -
第一次安装apk应用被杀死错觉
App打包apk安装后重复启动根界面的问题这个问题很特殊,一般情况下很难被发现,是Android系统一直以来的一个Bug。当我们把app打包成apk安装程序,通过点击apk文件进行安装时,会启动安装界面,并在安装成功后会跳转安装完成界面,如图:安装完成界面我们点击图中的打开按钮,此时会启动我们的app这里为了让大家更容易理解一些,我们假设app有两个界面启动...转载 2019-10-08 09:05:12 · 365 阅读 · 0 评论 -
Launcher需要优化的地方
presenter需要优化的地方1、有多处通过对象调用静态方法2、多处无用代码和无用导包3、adapter数据主动获取4、字符串到处都是,应该使用常量5、format最好指定Local6、前控板显示代码写在构造方法里面7、keyEvent处理应该放到p层还是view层goldstate1、apk较大45M,300多张图片重复出现2、布局资源文件嵌套太多,无dimen3、...原创 2019-06-28 17:56:55 · 245 阅读 · 0 评论 -
Launcher数据库总结
Launcher数据库总结文章目录Launcher数据库总结1、引言2、database.db中所有的表3、android_metadata表4、satellite_table表5、audio_table表6、satellite_transponder_table表7、box_info_table表8、subtitle_table表9、cable_transponder_table表10、ter...原创 2019-06-26 14:43:15 · 978 阅读 · 0 评论 -
约束布局ConstraintLayout看这一篇就够了
目录1.介绍 2.为什么要用ConstraintLayout 3.如何使用ConstraintLayout 3.1 添加依赖 3.2 相对定位 3.3 角度定位 3.4 边距 3.5 居中和偏移 3.6 尺寸约束 3.7 链 4.辅助工具 4.1 Optimizer 4.2 Barrier 4.3 Group 4.4 Placeholder 4.5.Guideli...转载 2019-03-21 14:55:34 · 256 阅读 · 0 评论 -
一、logcat命令介绍
1.android log系统 2.logcat介绍logcat是android中的一个命令行工具,可以用于得到程序的log信息log类是一个日志类,可以在代码中使用logcat打印出消息常见的日志纪录方法包括: 方法 描述 v(String,String) (vervbose) 显示全部信息 d(String,Str...转载 2018-08-27 17:46:45 · 268 阅读 · 0 评论 -
android:launchMode的四种方式
Activity一共有以下四种launchMode: standard singleTop singleTask singleInstance1.standardstandard模式是默认的启动模式,不用为<activity>配置android:launchMode属性即可,...转载 2018-08-20 11:51:48 · 5366 阅读 · 0 评论 -
android之文件上传
android中的文件上传使用的是post的提交方式。通过httpwatcher抓一个文件上传时的包,可以更加好的明白下面的代码//调用此方法时需要传递用户名,密码,文件路径文件上传时,上传的内容一般分为两部分,一部分是普通字段,另一部分就是真正要上传的内容下面通过注释对改程序的每行进行解释android客户端代码:public boolean upload(Str...转载 2018-06-05 13:41:27 · 425 阅读 · 0 评论 -
Android文件上传携带参数及服务器SSM代码
一 Android端代码package com.xky.recall.network;import com.xky.recall.utils.LogUtils;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;im...原创 2018-06-05 13:38:51 · 988 阅读 · 3 评论 -
Android缩略图代码
、图片的质量压缩 图片的质量压缩是指,仅仅压缩图片文件的大小,但当图片加载到内存中时,占用的内存大小并没有太大变化。可以通过质量压缩,加快图片上传的速度。代码如下:/***将文件压缩后覆盖源文件*/public static void compressImage(File file) {Bitmap bitmap=BitmapFactory.decodeFile(file.getAbso...转载 2018-05-14 23:03:32 · 440 阅读 · 0 评论 -
Android动画
ScaleAnimation:缩放动画同样,创建ScaleAnimation也有两种方式XML文件+Java代码Java代码方式XML文件+Java代码效果图: 文件目录:res/anim/scale.xml<?xml version="1.0" encoding="utf-8"?><scale xmlns:android="http://schemas.android.com...转载 2018-05-06 20:48:04 · 96 阅读 · 0 评论 -
Android完美检测键盘弹出/收起
代码很简单,可以直接复制粘贴。代码如下:private void setListenerToRootView() { final View rootView = getWindow().getDecorView().findViewById(android.R.id.content); rootView.getViewTreeObserver().a...原创 2018-05-06 20:10:52 · 2678 阅读 · 0 评论 -
Android View 长按、滑动、和点击同时进行,在View的onTouch
float xDown, yDown, xUp;boolean isLongClickModule = false;boolean isLongClicking = false;@Overridepublic boolean onTouch(View view, MotionEvent motionEvent) { //当按下时处理 if (motionEvent.getAc...转载 2018-05-17 14:37:42 · 3178 阅读 · 0 评论 -
Android获取所有有图片路径
核心代码: Cursor cursor = getContentResolver() .query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, null); while (cursor.moveToNext()) { //获...转载 2018-05-09 20:35:41 · 2168 阅读 · 2 评论 -
ADB WIFI 的使用
首先要确保电脑和手机在同一个局域网中。具体步骤如下 adb指令必须可以运行1.Android Studio中安装ADB WIFI插件。安装成功后重启Android Studio。(没有安装过插件的同仁,请自己搜索)2.手机USB连接电脑,在Android Studio中,点击Tools->Android->ADB WIFI->ADB USE to WIFI即可3. 然后拔掉USB...原创 2018-05-02 20:01:46 · 7520 阅读 · 1 评论 -
Vitamio5.4导入模板问题(01)
一 在 gradle.properties文件下添加如下代码ANDROID_BUILD_SDK_VERSION=26ANDROID_BUILD_TOOLS_VERSION=26ANDROID_BUILD_MIN_SDK_VERSION=15ANDROID_BUILD_TARGET_SDK_VERSION=26二 右击项目 open module setting -> a...原创 2018-04-19 16:31:44 · 119 阅读 · 0 评论 -
Unable to start adb server: error: protocol fault (couldn't read status): Connection reset by peer
情况出现:打开androidstudio,一直连接不上电脑,提示:Unable to start adb server: error: protocol fault (couldn't read status): Connection reset by peer问题原因:大多数情况是5037端口被占用。5037为adb默认端口。解决办法:查看哪个程序占用了adb端口,结束这个程...转载 2018-07-26 14:20:58 · 1184 阅读 · 0 评论 -
Android MVP Pattern
Android MVP 模式1 也不是什么新鲜的东西了,我在自己的项目里也普遍地使用了这个设计模式。当项目越来越庞大、复杂,参与的研发人员越来越多的时候,MVP 模式的优势就充分显示出来了。导读:MVP模式是MVC模式在Android上的一种变体,要介绍MVP就得先介绍MVC。在MVC模式中,Activity应该是属于View这一层。而实质上,它既承担了View,同时也包含一些Control...转载 2018-07-29 17:37:43 · 137 阅读 · 0 评论 -
Android VLC音频视频播发器快速集成教程与模块
前言通过该文,你能很简单的知道怎么使用vlc,并且通过封装好的方法,很简单的几句代码就能实现音频视频本地与在线播放。转载请务必注明出处:http://blog.csdn.net/u014614038/article/details/53158323目前的效果显示如下:音频效果(界面图标拿去了网易云音乐的图标):视频效果:一、vlc核心代码简述这部分主要简述一下v...转载 2018-07-29 17:53:58 · 779 阅读 · 0 评论 -
Android Animation 动画——translate解析图
今天来学习一下Animation文件里面translate的fromXDelta/fromYDelta与toXDelta/toYDelta值使用。现在看一下动画吧:很简单,就是一个从左向右的动画,怎么实现呢?我们来看一下动画文件:anim.xml<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http...转载 2018-08-14 18:56:32 · 5093 阅读 · 1 评论 -
Android 自定义View (五)——实践
前言:前面已经介绍了《Android 自定义 view(四)—— onMeasure 方法理解》,那么这次我们就来小实践下吧任务:公司现有两个任务需要我完成(1)监测液化天然气液压罐的液位(2)监测液化天然气液压罐的压力UI设计师给我的设计截图如下: 任务一实践开始第一步:先来看看整体结构组成第二步:绘制底部文字(1)我们将底部的文字、颜色,大小...转载 2018-08-01 09:52:49 · 111 阅读 · 0 评论 -
Android 自定义 view(四)—— onMeasure 方法理解
前言:前面我们已经学过《Android 自定义 view(三)—— onDraw 方法理解》,那么接下我们还需要继续去理解自定义view里面的onMeasure 方法推荐文章:http://blog.csdn.net/a396901990/article/details/36475213?utm_source=tuicool&utm_medium=referral onMe...转载 2018-08-01 09:51:29 · 165 阅读 · 0 评论 -
Android 自定义 view(三)—— onDraw 方法理解
前言:上一篇已经介绍了用自己定义的属性怎么简单定义一个view《Android 自定义view(二) —— attr 使用》,那么接下来我们继续深究自定义view,下一步将要去简单理解自定义view的一个比较重要的方法 onDraw(Canvas canvas) ,在探究 onDraw方法之前,我们必须先深入了解两个类Paint和Canvas 。 第一:认识Paint在探究onDr...转载 2018-08-01 09:50:15 · 533 阅读 · 0 评论 -
Android 自定义view(二) —— attr 使用
前言:attr 在前一篇文章《Android 自定义view —— attr理解》已经简单的进行了介绍和创建,那么这篇文章就来一步步说说attr的简单使用吧自定义view简单实现步骤(1)首先创建attrs自定义属性文件名称,定义属性以及相关数据类型(2)再次创建自定义view,然后读取相关属性完成需要的view相关布局、绘制等工作(3)最后在xml布局文件中引用或者直接在代码...转载 2018-08-01 09:48:03 · 172 阅读 · 0 评论 -
Android机顶盒开发初级篇minicom的使用以及adb的简单使用
一 首先这篇文章是做为一份Android机顶盒开发的参考文章,本人刚入坑Android机顶盒开发没多久,对一些问题的看法来源于我的实践以及领导所教。二 我所了解Android机顶盒的开发过程主要是以下几点1.每一个产商的不同pc版所使用的芯片会不一样,这也就导致了机顶盒所安装的系统的不同。以hi为例,厂商会给我们芯片文件中会有机顶盒的源代码,不过需要我们自己编译,一般编译我们是远程连接服务...原创 2018-07-31 19:38:48 · 2553 阅读 · 0 评论 -
Android从svn中下载的主项目和副项目如何合并
一 先用Android studio将主项目打开 1.将副项目以module形式导入到主项目中(file -> import module) 2.查看主项目中的build.gradle文件,看是否有如下信息,如果没有,根据自己Android studio自行配置buildscript { repositories...原创 2018-07-31 17:29:26 · 278 阅读 · 0 评论 -
Android ViewPager使用方法小结
android-support-v4.jar 是谷歌提供给我们的一个兼容低版本安卓设备的软件包,里面包囊了只有在 Android 3.0 以上可用的API。而 ViewPager 就是其中之一。利用它,我们可以做很多事情,从最简单的导航,到页面菜单等等。准备在使用ViewPager之前,需要在 build.gradle 中加入如下语句:compile 'com.android.sup...转载 2018-08-09 10:29:44 · 9938 阅读 · 0 评论 -
Android的holder机制
一 holder是安卓的一种缓存机制RecyclerView中holder的数量有限,但是List中的数量却很多,当改变holder中View的显示方式再删除时,被删除的不是holder,实际中被删除的知识List中的数据.二 解决方案 在List中设置一个标志位,如果标志位为真的话特殊显示,如果标志位为假的时候不做特殊显示。...原创 2018-05-02 20:02:12 · 4945 阅读 · 0 评论