Android基础
文章平均质量分 58
Android日常开发问题总结、技巧
Ikulm
知识在于积累
展开
-
Android AIDL跨进程通信
AIDL的文件编写相对来说不是很难,都是定义的一些接口方法,供外部调用。其中,我们通过自定义的远程服务ChatService作为中间组件,在两个应用间都绑定过一次,并且在DemoA中我们的远程服务与Activity的通信是通过Messenger来实现的,Messenger内部也是通过Binder机制将Message从一个进程传递到另一个进程。原创 2023-06-12 16:49:07 · 2298 阅读 · 2 评论 -
Android 无障碍服务自动点击
通过学习无障碍服务可以实现很多重复性操作,方便用户解决更多的问题。原创 2022-08-17 18:01:19 · 11732 阅读 · 3 评论 -
Android 自定义注解之kapt的全面解析
lib-annotation(Java依赖)存放自定义注解lib-processor(Java依赖)存放注解处理器bind-core(Android依赖)供外部调用//多个参数示例,default指定默认值}//传递View的id,}@Retention指定注解作用时期,包括SOURCE、CLASS、RUNTIME。RUNTIME的作用时期最长@Target指明该注解作用的代码元素,例如属性、方法、类、接口等value()plugins{}设置版本。......原创 2022-07-19 17:54:06 · 2808 阅读 · 0 评论 -
Android 集成zxing二维码扫描、自定义
项目主要有zxing的基本使用,包含扫描回调、连续扫描、自定义扫描框:一、依赖库implementation 'com.journeyapps:zxing-android-embedded:4.3.0'Github这个库是zxing Android端的,封装了一些基本的使用方法二、基本使用这里使用的是startActivityForResult的替代方法,registerForActivityResult...原创 2021-11-25 10:28:18 · 8971 阅读 · 3 评论 -
Android 自定义ViewGroup之测量onMeasure
自定义View一般都需要重写onMeasure()、onLayout()、onDraw()。但自定义ViewGroup更重要的是onMeasure()和onLayout(),因为作为容器,onDraw()方法显得没那么必要,即时你重写了此方法,它也不会调用,毕竟容器只需要关注自己内部view的摆放和约束其大小而已。一、onMeasure如何测量child?我们在重写完onMeasure(int widthMeasureSpec, int heightMeasureSpec)内部有width原创 2021-11-12 17:55:35 · 2010 阅读 · 0 评论 -
Android 带回调的启动Activity 推荐使用registerForActivityResult
今天无意间发现平常使用的startActivityForResult(intent,code)过时了,然后点进看: /** * {@inheritDoc} * * @deprecated use * {@link #registerForActivityResult(ActivityResultContract, ActivityResultCallback)} * passing in a {@link StartActivityForRe...原创 2021-08-19 14:23:08 · 13268 阅读 · 2 评论 -
Android open failed: EACCES (Permission denied)错误
在写Android下载更新时,部分手机遇到这样的问题,主要是Android10,大概意思是权限,什么的,不过我的app权限都有,也做了动态申请成功了,但还是出现这个问题了,另外也有人说原创 2021-06-15 11:41:21 · 1890 阅读 · 0 评论 -
Android room报错java.lang.IllegalStateException: Pre-packaged database has an invalid schema
之前在涉及城市列表的地方一直用的GreenDao来查询显示,最近有在学习jatpack,从而入手了room数据库,按照流程一切操作好之后,发现报了以下错误: java.lang.IllegalStateException: Pre-packaged database has an invalid schema: AREA_CITY(com.ssh.sh_recruit.room.bean.AreaCity). Expected: TableInfo{name='AREA_CITY', c原创 2020-09-14 11:36:12 · 2840 阅读 · 0 评论 -
Android Material Button和ImageView的快速实现UI想要的效果
今天开了一篇博客,就是分析平常我们给Button或TextView设置带圆角背景,大部分做法都是使用shape,然后shape有它的局限性,角度,填充色都是固定的,假如有多个不同角度的,就需要对应多份shape。据我了解网上也有第三方实现的动态改变背景的三方库,也能很友好的随意设置背景,因为项目使用了Material,恰巧也看到里面有自带的实现。Material依赖库implementation ‘androidx.multidex:multidex:2.0.1’1、MaterialButton原创 2020-09-11 12:05:56 · 564 阅读 · 0 评论 -
Android自定义View 饼状图,扇形图
项目需求得整个扇形统计图,觉得使用echars依赖感觉会有太多的冗余代码,可能个人对此有强迫症,保证apk安装包的大小,能自己实现的,使用率较高的就自己实现。功能点:显示百分比扇形圆环切换指定View的属性,大小实现分析内部一个小圆遮挡构成圆环;外部大圆绘制多个扇形区域,扇形大小根据外部穿入的百分比分割圆形;绘制折线,找到扇形所在弧的中心点,向外绘制线条;绘制文字1.确定view的宽和高,来决定圆的大小 @Override protected void onMeasure(int.原创 2020-07-17 12:01:57 · 1543 阅读 · 2 评论 -
Android 7.0文件共享、安装Apk问题
今年的第一篇,记录下,不平凡的一年,工作还得继续,往后的道路继续前进;工作中再次碰到7.0文件共享的问题,这次是因为更新安装包,发现安装不了,然后总结了一下解决问题的经过。7.0之前打开手机内存中的某一文件,直接通过uri.fromFile,通过intent指定类型,然后启动就行,但是7.0之后就会出现问题。以前打开文件安装包,7.0以上行不通 File file = new File(path); Intent intent = new Intent(Intent.ACTION_VIEW); in原创 2020-07-01 18:00:20 · 394 阅读 · 0 评论 -
Android 利用ConstraintLayout约束banner 比例显示
<android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent"> <com.youth....原创 2019-08-19 11:40:17 · 967 阅读 · 0 评论 -
Android 快速去掉Activity的切换动画
1.去掉进场Intent intent=new Intent(this,MainActivity.class); startActivity(intent); overridePendingTransition(0, 0);2.去掉出场动画在需要结束的activity中重写finish方法@Override ...原创 2018-05-31 15:46:23 · 12024 阅读 · 0 评论 -
Android利用环信SDK 3.x实现1对1视频通话
通过实现这个小功能,可以让大家快速了解该怎么集成聊天,通话功能。环信实现即使通讯都提供了两套(貌似融云也是的),一套简版api包括所有功能,另一套除了应有的功能外还有更全的界面和逻辑(只需要简单的几行代码就能实现聊天的)。这种情况得看大家的工作需要了,如果界面需要自己写的话,那就使用第一种了。下面我把自己集成环信sdk实现聊天和视频通话的过程总结一下。一、环信官网注册账号创建应用获取A原创 2017-12-14 15:03:15 · 3443 阅读 · 1 评论 -
Android自定义Dialog
看过一位前辈说过一番话,工作五六年,东西做的多,但总结的却很少,哪怕自己会的东西,很简单的东西,时间长了也会遗忘的,所以我们要学会有自己的代码库,将耦合度低的代码封装起来,放在github上或者博客上,然后我会想这些东西才会是自己的,哪怕以后项目重新遇到了这些代码,可以马上拿来就用。今天有空,就想想平常用的dialog,用着是挺简单的,但总感觉像少了点什么,每次都会翻开以前的代码,然后又重写一遍,...原创 2017-08-08 17:15:33 · 556 阅读 · 2 评论 -
Android中小视频录制,预览
工作中项目需求,在动态里面支持查看录制的小视频;录制视频主要用到Android中MediaRecorder这个类,在录制的过程中需要结合SurfaceView和Camera,Camera管理手机摄像头,SurfaceView负责将Camera捕捉到的图像渲染出来,MediaRecorder类则相当于这两者之间的枢纽,负责协调。一、主要功能:视频录制,可设置录制最大时长和最小时长,支持横屏竖原创 2017-07-18 11:32:42 · 1058 阅读 · 0 评论 -
Android自定义view之仿微信录制视频按钮
本文章只写了个类似微信的录制视频的按钮,效果图如下: 一、主要的功能:1.长按显示进度条,单击事件,录制完成回调2.最大时间和最小时间控制3.进度条宽度,颜色设置二、实现思路该自定义View主要有三块组成,白色内圆,浅色大圆,圆形进度条;长按一段时间,内圆缩小0.75倍,外圆放大1.33倍,进度条显示更新,松开手内圆,外圆统一恢原创 2017-07-05 16:12:06 · 3226 阅读 · 1 评论 -
Android在As中org.apache.http系列的包不能使用
之前Eclipse项目移动到As之后,出现以下问题import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.HttpVersion;import org.apache.http.client.HttpClient;import org.apache.http.原创 2017-06-18 14:24:42 · 4759 阅读 · 0 评论 -
Android中ScrollView中嵌套RecyclerView的完美解决办法
工作中的项目是Eclipse项目,有用到RecyclerView,也是在ScrollView中使用出现问题的,不过很容易就解决了,最近在As项目中ScrollView嵌套RecyclerView的时候就出现各种问题,6.0系统问题,显示不全,不能惯性滑动,网上找了些文章总结了下解决的办法一、原先的解决办法(继承LinearLayoutManager)import android.co原创 2017-06-14 00:16:12 · 4105 阅读 · 0 评论 -
Android自定义View学习之圆角图片(圆形图片)
圆形图片的实现方式有很多种,首先我分享下自己所知道的一种实现方式,这种方式的实现对角度的控制很灵活,可以在xml中自由的设置,实现的过程中使用到了PorterDuffXfermode这个类,网络上对PorterDuffXfermode的解释:类android.graphics.PorterDuffXfermode继承自android.graphics.Xfermode。在用Android中的C原创 2017-05-23 18:19:08 · 634 阅读 · 0 评论 -
Android自定义View学习之画太极图
自定义控件是Android开发者必须掌握的知识,因为开发中很多高级的UI特效都是自定义而来的,我们知道一个View显示在界面上一般会经历创建,测量,布局,绘制,事件处理等生命周期方法,个人对自定义控件接触的不多,所以也是在学习的初级阶段,下面我们来绘制一个简单的太极图(实现代码也是参考网上的,这里加上自己的汇总分析下几个方法的使用和具体的参数意义,从而加深对自定义UI的初步认识)一、效果...原创 2017-05-18 15:11:41 · 755 阅读 · 0 评论 -
Android中将Activity转化为Dialog
效果图先附上,实现的原理主要是修改Activity的主题样式,使它看起来就像是Dialog一样,实际还是Activity,不过用起来方便就好了,而且Activity本身支持打开和关闭的各种动画,这样我们在打开这个dialog的时候也能轻松的支持Android中的平移,缩放,旋转,渐隐渐现的基本动画demo主要就两个Activity,一个主Activity和一个DialogActivity一原创 2017-05-11 11:56:43 · 6335 阅读 · 0 评论 -
Android中keystore文件的SHA1获取方法
SHA1的作用是校验一个文件的安全性,防止此文件被篡改,文件SHA1的获取,java代码也有实现,网上也有挺多的,这里主要介绍Android在打包发布时需要用到的keystore文件的SHA1获取方法:获取的时候会用到Java jdk中的keytool.ext工具,以下是我的jdk安装目录一、命令行运行 cd .android 二、执行 keytool -l...原创 2017-05-10 11:43:56 · 3447 阅读 · 0 评论 -
Android应用调起三方地图进行导航
当项目中需要用到地点导航,可能你需要集成三方地图,但现在更多的应用的做法是直接调起手机中已经安装好的地图,高德,百度等等,这样比集成三方地图来得更快,可行性也更高,下面代码都是参考网络上的,自己整理了下一.使用谷歌地图Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("htt原创 2017-04-26 16:37:18 · 3088 阅读 · 0 评论 -
Android类似微信详细地址选择(高德地图)
利用高德地图的API做了一个类似微信发送位置界面地址选择,界面就3个,一个选择地址(周边搜索),一个搜索界面(关键字搜索),最后将选择的地址信息返回主界面,效果图如下: 对于详细地址选择,在项目中难免会遇到,比如电商app,旅游app等等,下面简单讲解如何实现:一、注册高德开发者账号,创建应用,获取AppId1.创建应用过程红色※为必填项,其中 SHA1获取方式 确认随后得到appid2.下载...原创 2017-04-18 16:52:36 · 8415 阅读 · 7 评论 -
Android四大组件之BroadcastReceiver的使用
工作之余,有些闲功夫,想想还是总结一下基础知识,Android广播在项目中使用还是比较多的,相对于四大组件,可能仅次于Activity的使用。首先,我们得知道广播的作用:从字面意思上来看,广播就好比收音机通知收听者,同时也能携带广播信息。广播的种类可分为有序广播和无需广播,然而有序广播是有顺序之分,故也有优先级之分,利用广播的优先级我们也可以做很多事,比如短信拦截,来电骚扰都会使用到广播的优先级。原创 2017-04-17 14:41:48 · 477 阅读 · 0 评论 -
Android解决三星手机图片旋转问题
此文章只是记录自己在项目中遇到的问题,写下来,给自己提醒,相信接触过图片选择的必定会遇到三星手机从相册或者是拍照之后拿到图片路径,获取Bitmap对象,图片大了还得对bitmap进行压缩,最后显示在ImageView上,就会发现照片会旋转90°(我遇见的,不知道其他人旋转了多少度),解决办法也是比较方便快捷:1.通过图片路径得到图片的旋转角度public static int readPictur...原创 2017-04-01 14:37:37 · 1896 阅读 · 0 评论 -
Android使用monkey进行简单测试
使用adb命令前,必须将apk签名打包adb shell monkey –p com.android.xxx –v 180000 500-p:应用的包名-v:测试的次数500:期间所用时间原创 2016-08-18 16:34:21 · 636 阅读 · 0 评论