Android
丑小鸭是白天鹅
这个作者很懒,什么都没留下…
展开
-
Android 将support组件化项目迁移到Androidx方案
support与androidx对应的依赖包借用Android Studio 工具栏Refactor——>Migratie to AndroidX,将项目的support依赖包都替换成了androidx迁移后项目统一使用的Androidx版本一览表如下:依赖包Androidx版本appcompatandroidx.appcompat:appcompat:1.2.0constraintlayoutandroidx.constraintlayout:constrai原创 2021-05-18 14:24:06 · 914 阅读 · 0 评论 -
Android 在BottomSheetDialog里使用EditText时,关闭键盘的有效方式
只需在BottomSheetDialog里面如下实现即可:public class KeyBoardBottomSheetDialog extends BottomSheetDialog { public KeyBoardBottomSheetDialog(@NonNull Context context) { super(context); } public KeyBoardBottomSheetDialog(@NonNull Context contex转载 2020-08-26 09:57:45 · 868 阅读 · 0 评论 -
ViewModel
随着 Android 架构的演进,从 MVC 到 MVP 再到现在的 MVVM,项目的结构越来越清晰,耦合度也越来越低,本质上讲就是对 UI 和逻辑的分离,而在这一分离的过程中,MVP 的 presenter 和 MVVM 中的ViewModel 都起了很重要的作用,Presenter 不必多说,就是一个类封装了我们的逻辑代码,并加了一些回调。我们要讲的是 ViewModel 如何创建使用,如何和页面生命周期绑定以及如何在配置更改时恢复数据。1.what?ViewModel和LiveData...转载 2020-08-12 10:52:51 · 537 阅读 · 0 评论 -
WiFi(网络)调试Android手机
adb本身提供了网络调试的功能,所以,在不能直接用USB连上Android手机的情况下,可以使用WiFi连接adbd进行调试。具体方法如下:方法一 临时使用如果只是暂时需要用WiFi连adb:1. 手机、PC连上AP,确保两者能够正常分配IP(ifconfig查看):PC: 手机: (可以ping一下,验证互通;若不互通,请检查AP,PC,转载 2018-01-10 15:46:01 · 2276 阅读 · 0 评论 -
关于Dagger2中@Binds的使用
在Dagger2中,一般都是使用@provide方法注入接口。在我们使用MVP模式搭建Android app的时候,一般我们会这样做,创建一个接口presenter命名为HomePresenter。public interface HomePresenter { ObservableList> loadUsers()}然后创建一个这个接口的实例,叫做HomePresenterImp,转载 2018-01-19 09:39:42 · 3172 阅读 · 1 评论 -
Android 自定义控件文字的居中绘制
如上图,左边是一个圆,右边是两个文本,现在需要绘制一个与圆心居中对齐的文本,现拉出一条从圆心中间横穿的横线,红色横线将文本一分为二,以红色横线为基线的文本是上图中最右边的text文本,可我们的目标是要中间那个与圆心居中的文本,因此我们找距离关系: 1、最右边文字红色基线到文字最顶层的距离是,paint.ascent(负数)(paint是绘制文本的画笔),红色基线到文字最底层的距离是原创 2017-02-23 15:28:11 · 1161 阅读 · 0 评论 -
自定义view之绘制进度条
绘制效果如下: 代码还有很多需要完善优化的地方,后面有空我会继续优化代码和增强功能,里面有些技术要点,有空再慢慢细写出来。源代码下载地址: https://github.com/luochune/CustomViewProject/tree/master原创 2018-02-05 18:28:55 · 208 阅读 · 0 评论 -
推荐一个封装得好的指纹解锁库
github地址: https://github.com/uccmawei/FingerprintIdentify 兼容 Android API:minimum support for Android 6.0 (more detail)SamSung SDK:minimum support for Android 4.2 (more detail)MeiZu SDK:minimum su...原创 2018-02-26 15:02:06 · 342 阅读 · 0 评论 -
android studio 3.0版本下使用lambda表达式的正确配置姿势
一、在当前项目的app/build.gradle文件里面添加三段代码: compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 encoding "UTF-8" } 二、这是让你的IDE强制...转载 2018-02-21 19:34:18 · 1836 阅读 · 0 评论 -
小萝贝控机大师工具推荐(一款在PC就能控制手机界面的工具)
在一次写博客的过程中,要截取手机app上的几张图片,然后粘贴到博客里面去,不了解这个工具的时候,我就从手机上截图(使用其他的截图app或者使用手机自己的截图功能),然后再传送到电脑上,然后再放到博文中,觉得很繁琐,要是有一个能够与手机交互的PC端工具那不就很方便了么,于是就搜索了一下,无意中就发现这款app,个人觉得很实用,体验上也还不错,所以推荐给读者使用。 app名称:小萝贝控转载 2018-01-10 14:29:25 · 14823 阅读 · 0 评论 -
Android指纹识别深入浅出分析到实战(6.0以下系统适配方案)
指纹识别这个名词听起来并不陌生,但是实际开发过程中用得并不多。Google从Android6.0(api23)开始才提供标准指纹识别支持,并对外提供指纹识别相关的接口。本文除了能适配6.0及以上系统,主要还提供6.0以下设备适配解决方案。指纹识别用途大概列举几个指纹识别的用途系统解锁应用锁支付认证普通的登录认证指纹识别Google官方文档官方标准库G转载 2018-01-10 14:07:27 · 823 阅读 · 0 评论 -
总结一下Android中主题(Theme)的正确玩法
在AndroidManifest.xml文件中有,其中的@style/AppTheme是引用的res/values/styles.xml 中的主题样式,也有可能是引用的 res/values-v11/styles.xml 或者 res/values-v14/styles.xml,这是根据运行此程序的手机系统来决定的,如果手机系统的API版本是11以上就是v11/styles.xml,以此类推。在v转载 2018-01-26 12:42:11 · 862 阅读 · 0 评论 -
Android业务组件化之URL Scheme使用
前言: 最近公司业务发展迅速,单一的项目工程不再适合公司发展需要,所以开始推进公司APP业务组件化,很荣幸自己能够牵头做这件事,经过研究实现组件化的通信方案通过URL Scheme,所以想着现在还是在预研阶段,很有必要先了解一下URL Scheme,看看是如何使用的?其实在之前做Hybrid混合编程的时候就接触过URL Scheme,总来的来说还不算陌生,今天就来回顾总结一下。业务转载 2018-01-08 16:58:45 · 176 阅读 · 0 评论 -
Android O自适应启动图标
Android 8.0(API级别26)引入了自适应启动器图标,可以在不同的设备模型中显示各种形状。例如,自适应启动器图标可以在一个OEM设备上显示圆形形状,并在另一个设备上显示一个圆形。每个设备OEM都提供一个遮罩,系统随后使用该遮罩来渲染具有相同形状的所有自适应图标。自适应启动器图标也用于快捷方式,设置应用程序,共享对话框和总览屏幕。 图1.自适应图标支持各种设备的不同掩码。原创 2018-01-16 17:28:39 · 3871 阅读 · 1 评论 -
Android屏幕适配全攻略(最权威的官方适配指导)
Android屏幕适配出现的原因在我们学习如何进行屏幕适配之前,我们需要先了解下为什么Android需要进行屏幕适配。由于Android系统的开放性,任何用户、开发者、OEM厂商、运营商都可以对Android进行定制,修改成他们想要的样子。但是这种“碎片化”到底到达什么程度呢?在2012年,OpenSignalMaps(以下简称OSM)发布了第一份Android碎片化报告,统计转载 2018-01-23 14:42:20 · 467 阅读 · 0 评论 -
Android TextView 动态改变字体颜色、大小
一、概述1、SpannableString、SpannableStringBuilder与String的关系首先SpannableString、SpannableStringBuilder基本上与String差不多,也是用来存储字符串,但它们俩的特殊就在于有一个SetSpan()函数,能给这些存储的String添加各种格式或者称样式(Span),将原来的String以不转载 2018-01-22 20:36:06 · 2576 阅读 · 0 评论 -
dagger2之dagger-android简单使用
dagger2的使用便利我就不用说了,google为方便android开发者进而推出了dagger-android,这里附录官方文档:[https://google.github.io/dagger/android.html] 需要增加依赖: compile 'com.google.dagger:dagger:' + dagger_version compile "com.google原创 2018-01-04 19:31:41 · 1980 阅读 · 0 评论 -
This Handler class should be static or leaks might occur Android
首先解释下这句话This Handler class should be static or leaks might occur,大致意思就是说:Handler类应该定义成静态类,否则可能导致内存泄露。具体如何解决,在国外有人提出,如下:Issue: Ensures that Handler classes do not hold on to a reference to an o转载 2018-01-11 16:07:42 · 178 阅读 · 0 评论 -
Fragment及其生命周期浅析
Fragement表示Activity中的行为或用户界面部分。可以将多个片段组合在一个Activity中来构建多窗格UI,以及在多个Activity中重复使用某个片段。可以将片段视为Activity的模块化组成部分,它具有自己的生命周期,能接收自己的输入事件,并且可以在Activity运行时添加或移除片段片段必须始终嵌入在Activity中,其生命周期受宿主Activity生命周期的影响:当Act...原创 2018-03-06 10:05:09 · 239 阅读 · 0 评论 -
Andorid 拍照、从相册中选择图片兼容7.0uri
其中点击事件如下: 图片: Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, ToolUtils.SCAN_OPEN_PHONE);123456相机:...转载 2018-04-18 10:48:41 · 856 阅读 · 0 评论 -
Android使用AutoSize适配框架与字体大小全局改变getResources方法互斥的替代解决方式——通过Theme主题动态切换字体大小
前言: 最近公司做了横屏手持车载设备,屏幕和通常的手机屏幕差别不大,我们是按照1334*750的设计图尺寸做的,横屏适配和竖屏适配方式是不一样的,横屏的像素宽,横向布局不会太复杂,通常"match_parent"或权重就可以满足横向设计要求,但是高度就不一样了,比如设计图的高度是750px,几乎只有横向像素的一半,如果竖屏内容需要滑动显示倒无所谓了,对于车载端,主要界面偏偏都不是大篇幅的需要高度滑...原创 2019-09-06 19:30:12 · 2109 阅读 · 0 评论 -
Android平板界面适配记录
基本概念:分辨率:整个屏幕的像素数目,为了表示方便一般用屏幕的像素宽度(水平像素数目)乘以像素高度表示,形如1280x720。屏幕密度:表示单位面积内的像素个数,通常用dpi为单位,即每英寸多少个像素点 (斜边像素/屏幕尺寸)dp:长度单位,与屏幕密度无关,推荐使用,显示的时候根据具体平台屏幕密度的不同最终转换为相应的像素长度,具体转换规则是: 1dp = (目标屏幕密度/标准密度)...原创 2019-06-03 10:38:28 · 2443 阅读 · 1 评论 -
Android DataBinding——利用数据改变UI,分离你的数据业务逻辑
第一部分:DataBinding是什么? 我来答: 是google官方指导架构篇Architecture Components的一个支持库,借用它可以将UI界面组件绑定到应用的数据源中。第二部分: 作为Android 开发者我如何接入使用呢? 只需一步,在app module的build.gradle下加入如下配置:android { ... ...原创 2019-05-30 16:03:06 · 795 阅读 · 0 评论 -
Android好用组件推荐:android.support.design.widget.TabLayout
什么是TabLayout上图中,我们可以看到,该页面分成三个页签,每个页签对应不同的内容,如果让我们来实现布局的话,我们会很容易地想到布局为一个页签指示器+ViewPager,以前,相信各位大多使用的是GitHub上的开源框架PagerSlidingTabTrip来实现指示器的效果,而如今,Android中也有自带这种指示器的控件TabLayout,TabLayout存在于android...转载 2019-04-25 10:59:11 · 5110 阅读 · 0 评论 -
android利用DialogFragment解决软件盘弹出遮挡底部编辑框的解放方案
在onCreateDialog重写方法中加入对diaologwindow的软键盘弹出模式://获取当前Activity所在的窗体Window dialogWindow = dialog.getWindow();//设置软键盘弹出模式dialogWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN...原创 2018-10-22 14:12:07 · 4412 阅读 · 0 评论 -
探索RxAndroid在android开发中的应用
一、何来RxAndroid?RxAndroid is an extension to RxJava built just for Android. It includes special bindings that will make your life easierrxandorid是为andorid设计的rxjava扩展使用,包含的特殊的绑定将使开发更容易二、有啥方便使用的? ...原创 2018-08-29 16:00:55 · 224 阅读 · 0 评论 -
转: 关于使用eventbus引发的NoClassDefFoundError问题解决方案
报错情况:java.lang.NoClassDefFoundError: org.greenrobot.eventbus.EventBusBuilder 环境描述:android studio 、API 18 、JDK1.8 问题原因:1、 没有注册或者创建EventBus初始化对象。 2、multidex问题。这是因为安卓5.0起MultiD...转载 2018-08-02 15:00:31 · 774 阅读 · 0 评论 -
Edittext、textview根据enable状态动态显示字体颜色
一、在selector中通过state_enabled、state_selected设置不同状态的字体颜色例如: <?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:...原创 2018-07-16 09:59:22 · 5600 阅读 · 0 评论 -
dialog或者dialog消失输入框不消失的问题解决
支付密码输入框有时会设置SOFT_INPUT_STATE_ALWAYS_VISIBLE输入框一直显示,避免一些支付密码输入框遮挡秘密码编辑框的问题,但是当dismiss弹框后,输入框并未消失,现提供一种解决思路: 调用弹框dismiss之前,关闭输入弹窗: //隐藏输入法 InputMethodManager manager= (InputMethodManager) getS...原创 2018-07-25 11:03:26 · 965 阅读 · 0 评论 -
EventBus的使用
一、简介EventBus是由greenrobot 组织贡献的一个Android事件发布/订阅轻量级框架。EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。比如请求网络,等网络返回时通过Handler或Broadcast通知UI,两个Fragment之间需要通过Listener通信,这些需求都可以通过...转载 2018-07-18 15:37:25 · 174 阅读 · 0 评论 -
推荐一个成熟的andorid 支付密码输入框GridPasswordView
奉上github地址:https://github.com/Jungerr/GridPasswordView这个封装控件还是很成熟的,建议下载源码分解学习,另外我看过那种可以做成明文显现一秒在密文显示的密码框,也许这个View也可以拓展成那样的效果,值得一试...原创 2018-07-17 15:06:51 · 533 阅读 · 0 评论 -
android 中银行卡号利用正则四位空格分隔
String splitStr="123456789012345".replaceAll("\\d{4}(?!$)", "$0 ");然后控件直接赋值splitStr即可,是不是很方便啊原创 2018-06-27 11:40:07 · 1832 阅读 · 0 评论 -
使用AndroidStudio将Module项目导出成Jar和arr库
一、首先先把你的module项目中的build.gradld文件进行修改,如下:注意: 建议新建此module的时候选择library类型,这样就不用改动了 二、、在build.gradle文件中复制下面代码:注意: 以下代码需要同android{}平级task clearJar(type: Delete) { delete 'libs/retrofitlib.jar'}task ...原创 2018-06-19 22:48:14 · 3579 阅读 · 0 评论 -
引入retrofit2与项目gson的冲突异常duplicate entry: com/google/gson/annotations/Expose.class
解决方式如下: compile ('com.squareup.retrofit2:converter-gson:2.1.0'){ exclude group : 'com.google.code.gson' }即去掉converter gson里面的gson group。 如果依赖方式使用gradle里定义的版本,采用如下方式:compile (deps.convert...原创 2018-06-17 21:05:09 · 3023 阅读 · 0 评论 -
Android金额输入框只允许输入小数点后两位效果
实现android 金额输入框输入小数点后两位的效果也不是很复杂,只需要设置输入框输入的字符类型、设置InputFilter、设置输入变化监听即可。这篇文章主要介绍了Android金额输入框只允许输入小数点后两位 ,需要的朋友可以参考下 一:要实现这个效果也不是很复杂,只需要设置输入框输入的字符类型、设置InputFilter、设置输入变化监听即可。下面直接来看代码吧….二:new 一...转载 2018-06-01 17:59:41 · 1925 阅读 · 0 评论 -
减少图像下载大小
原文: https://developer.android.com/topic/performance/network-xfer.html大多数下载流量由图像组成。因此,您可以制作可下载图片的尺寸越小,您的应用可以为用户提供的网络体验就越好。本页面提供了使图像文件变得更小,更加网络友好的指导。了解图像格式Android应用程序通常使用以下一种或多种文件格式的图像:PNG,J翻译 2018-01-11 10:18:42 · 289 阅读 · 0 评论 -
Android kotlin入门与基础语法一
Kotlin Android 入门原创 2017-05-26 10:38:36 · 354 阅读 · 0 评论 -
Android 内部存储与外部存储
Android 外部存储 内部存储原创 2017-05-26 18:21:55 · 787 阅读 · 0 评论 -
有关eclipse查看应用签名的问题
首先使用eclipse自己创建带有签名的应用。 步骤一: 打开eclipse 右击项目Android项目 选择Android tools-〉Export Signed Application. 步骤二: 如果还没有安装有数字证书,那么选择create new keystore 如图:原创 2015-06-07 22:08:40 · 1046 阅读 · 0 评论 -
补充----正则表达式对字符串的实际运用
特殊说明,s.replaceAll("\\w","v")表示替换所有字符为v,因为w代表a-zA-Z0-9原创 2015-05-27 15:10:53 · 422 阅读 · 0 评论