Android
码农小白007
苦逼的青年
展开
-
报错More than one file was found with OS independent path 'META-INF/proguard/androidx-annotations.pro'
解决方案在 app的Gradle中添加:defaultConfig { ................... packagingOptions { exclude 'META-INF/proguard/androidx-annotations.pro' } }原创 2018-12-06 18:51:34 · 4173 阅读 · 0 评论 -
Android架构组件WorkManager(管理后台任务)使用
WorkManager定义:WorkManager API可以轻松地让异步任务延迟执行以及何时运行它们,这些API可让我们创建任务并将其交给WorkManager,以便立即或在适当的时间运行。例如,应用程序可能需要不时从网络下载新资源,我们可以使用WorkManager API设置一个任务,然后选择适合它运行的环境(例如“仅在设备充电和联网时”),并在符合条件时将其交给 WorkManager ...原创 2018-11-06 17:33:14 · 2862 阅读 · 0 评论 -
Android-ViewModel和LiveData使用
ViewModel类的设计目的是以一种关注生命周期的方式存储和管理与UI相关的数据。例如:Activity在配置发生改变时(屏幕旋转),Activity就会重新创建,onCreate()方法也会重新调用。我们可以在onSaveInstanceState()方法中保存数据,并从onCreate()方法中通过Bundle恢复数据,但这种方法只适用于可以对其进行序列化的少量数据,而不适用于潜在的大量数...原创 2018-11-06 11:09:49 · 2368 阅读 · 0 评论 -
Android Studio Gradle 配置 lintOptions
android { lintOptions { // true--关闭lint报告的分析进度 quiet true // true--错误发生后停止gradle构建 abortOnError false // true--只报告error ignoreWarnings true ...转载 2018-11-01 16:31:15 · 479 阅读 · 0 评论 -
视频RTSP、RTMP和HTTP协议的区别
共同点:1:RTSP RTMP HTTP都是在应用应用层。3.理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTSP RTMP,做点播用HTTP。做视频会议的时候原来用SIP协议,现在基本上被RTMP协议取代了。区别:1:HTTP: 即超文本传送协议(ftp即文件传输协议)。HTTP:(Real Time Streaming Protocol),实时流传输协议。HT...原创 2018-10-20 18:36:44 · 1853 阅读 · 0 评论 -
Android权限总结
全部权限:1.android.permission.WRITE_USER_DICTIONARY允许应用程序向用户词典中写入新词2.android.permission.WRITE_SYNC_SETTINGS写入Google在线同步设置3.android.permission.WRITE_SOCIAL_STREAM读取用户的社交信息流4.android.permission.WRITE...原创 2018-10-22 11:01:59 · 322 阅读 · 0 评论 -
Android-屏幕适配(smallestWidth适配/今日头条屏幕适配方案终极版)
什么是 smallestWidthsmallestWidth 翻译为中文的意思就是 最小宽度,那这个 最小宽度 是什么意思呢?系统会根据当前设备屏幕的 最小宽度 来匹配 values-swdp,为什么不是根据 宽度 来匹配,而要加上 最小 这两个字呢?这就要说到,移动设备都是允许屏幕可以旋转的,当屏幕旋转时,屏幕的高宽就会互换,加上 最小 这两个字,是因为这个方案是不区分屏幕方向的,它只会把...原创 2018-10-19 23:02:12 · 5640 阅读 · 0 评论 -
Android开发:详解Handler的内存泄露
原文:https://blog.csdn.net/carson_ho/article/details/52693211 前言内存泄露在Android开发中非常常见 内存泄露的定义:本该被回收的对象不能被回收而停留在堆内存中 内存泄露出现的原因:当一个对象已经不再被使用时,本该被回收但却因为有另外一个正在使用的对象持有它的引用从而导致它不能被回收。 这就导致了内存泄漏。...转载 2018-10-18 18:50:40 · 128 阅读 · 0 评论 -
Android多线程:HandlerThread详细使用手册
原文地址:https://blog.csdn.net/carson_ho/article/details/79285760 多线程的应用在Android开发中是非常常见的,常用方法主要有:继承Thread类实现Runnable接口HandlerAsyncTaskHandlerThread今天,我将全面解析多线程其中一种常见用法:HandlerThread 由于本文涉及...转载 2018-10-18 18:44:47 · 159 阅读 · 0 评论 -
Android - 图片处理之Glide4.0
郭大神关于Glide文章的连接,很详细Android图片加载框架最全解析(一),Glide的基本用法Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程Android图片加载框架最全解析(三),深入探究Glide的缓存机制 Android图片加载框架最全解析(四),玩转Glide的回调与监听Android图片加载框架最全解析(五),Glide强大的图片...转载 2018-09-06 19:20:26 · 668 阅读 · 0 评论 -
Android 新布局 ConstraintLayout 完全解析
本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每天都有文章更新。本篇文章的主题是ConstraintLayout。其实ConstraintLayout是Android Studio 2.2中主要的新增功能之一,也是Google在去年的I/O大会上重点宣传的一个功能。我们都知道,在传统的Android开发当中,界面基本都是靠编写XML代码完成的,虽然An...转载 2018-11-02 10:56:41 · 5058 阅读 · 0 评论 -
Android开发高手课(高质量开发,高效开发,架构演进)
现在扫码购买立得8元返现原创 2018-11-26 16:28:31 · 1510 阅读 · 1 评论 -
Android Lifecycle--Navigation Architecture Component 使用详解
转载:https://blog.csdn.net/cekiasoo/article/details/80739805 一、Navigation 是什么 Navigation 是 Google 新推出的库,其作用简单的说就是用于简化界面间跳转的,Activity 和 Fragment 都可以 [ Google Navigation 官方文档 ] [ Google 官方...转载 2018-11-05 18:52:32 · 404 阅读 · 0 评论 -
Android Butterknife 使用方法总结
原文地址:http://blog.csdn.net/donkor_/article/details/77879630前言: ButterKnife是一个专注于Android系统的View注入框架,以前总是要写很多findViewById来找到View对象,有了ButterKnife可以很轻松的省去这些步骤。是大神JakeWharton的力作,目前使用很广。最重要的一点,使用ButterKnif...转载 2018-11-05 15:10:33 · 193 阅读 · 0 评论 -
Android官方架构组件:Lifecycle(控制生命周期)
应该是 Android Jetpack 讲解的最好的博客系列: Android官方架构组件Paging:分页库的设计美学 Android官方架构组件Navigation:大巧不工的Fragment管理框架 Android官方架构组件Lifecycle:生命周期组件详解&原理分析 概述在过去的谷歌IO大会上,Google官方向我们推出了 Android Ar...转载 2018-11-05 10:20:50 · 308 阅读 · 0 评论 -
AppBarLayout+CollapsingToolbarLayout实现自定义工具栏折叠效果
原文地址:https://www.jianshu.com/p/bbc703a0015e 在许多App中看到, toolbar有收缩和扩展的效果, 例如:appbar.gif要实现这样的效果, 需要用到:CoordinatorLayout和AppbarLayout的配合, 以及实现了NestedScrollView的布局或控件.AppbarLayout是...转载 2018-11-26 10:41:11 · 2061 阅读 · 0 评论 -
Androif Rxjava+RxAndroid+ReTrofit2+okHttp3使用
在 app 的 build.gradle 中dependencies{ / /网络请求框架Rxjava+RxAndroid+ReTrofit2+okHttp3+RxBinding //导入retrofit implementation 'com.squareup.retrofit2:retrofit:2.4.0' //转换器,请求结果转换成Model im...原创 2018-11-02 22:57:35 · 1672 阅读 · 0 评论 -
RxBinding使用
RxBinding地址: https://github.com/JakeWharton/RxBinding依赖RxBinding就不需要再依赖RxJava了,内部已经包含了一:RxViewbtnLogin:为触发事件的控件1.点击事件(可以预防重复点击)//此处设置点击间隔为 2s TimeUnit.SECONDS 表示以秒为单位RxView.clicks(btnLogin) ...原创 2018-11-02 17:52:48 · 1256 阅读 · 0 评论 -
Android:你要的WebView与 JS 交互方式 都在这里了
原文地址:https://blog.csdn.net/carson_ho/article/details/64904691 阅读本文前请先阅读:Android开发:最全面、最易懂的Webview详解目录1. 交互方式总结Android与JS通过WebView互相调用方法,实际上是:Android去调用JS的代码JS去调用Android的代码 二者沟通的桥梁是Web...转载 2018-11-02 14:06:04 · 227 阅读 · 0 评论 -
Android图片处理Glide 4 介绍
本篇将是我们这个Glide系列的最后一篇文章。其实在写这个系列第一篇文章的时候,Glide就推出4.0.0的RC版了。那个时候因为我一直研究的都是Glide 3.7.0版本,再加上RC版本还不太稳定,因此整个系列也都是基于3.7.0版本来写的。而现在,Glide的最新版本已经出到了4.4.0,可以说Glide 4已经是相当成熟和稳定了。而且也不断有朋友一直在留言,想让我讲一讲Glide 4...转载 2018-09-06 18:41:38 · 311 阅读 · 0 评论 -
Android Studio 中 处理 Gradle 依赖的几种方法的介绍
excludeexclude : 剔除依赖中的某个模块 例:// 根据组织名 + 构建名剔除//recyclerview 不想要依赖 com.android.support:support-annotations:26.1.0,就可以这么做implementation ('com.android.support:recyclerview-v7:26.1.0'){ ...原创 2018-09-06 18:24:35 · 613 阅读 · 0 评论 -
Android中点击编辑框以外的地方关闭输入法
//Activity中的方法,重写就行 @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { View v = getCurrentFocus(); if原创 2017-10-18 23:06:53 · 1785 阅读 · 0 评论 -
平常的资源图转Bitmap(太大的资源图不能用这个转)
Bitmap bitmap = BitmapFactory.decodeResource(this.getContext().getResources(), R.drawable.test);原创 2017-10-18 18:01:42 · 229 阅读 · 0 评论 -
当项目资源图片太大无法转为Bitmap时解决办法
` private Bitmap readBitMap(Context context,int resid){ BitmapFactory.Options opt=new BitmapFactory.Options(); opt.inPreferredConfig=Bitmap.Config.RGB_565; opt.inPurgeable翻译 2017-10-18 11:44:43 · 591 阅读 · 0 评论 -
Android中将资源文件转为Bitmap对象
Android中将资源文件转为Bitmap对象Bitmap mybitmap = BitmapFactory.decodeResource(getResources(), R.drawable.timg);原创 2017-10-17 13:12:19 · 2782 阅读 · 0 评论 -
Application的使用及其生命周期
Android Application的使用及其生命周期 1. Application的使用多个组件之间数据共享举例:两个Activity之间数据共享Application 对同一个应用程序是唯一的,所以可以使用Application进行数据共享使用Application修改AndroidManifest.xml文件, 使用自定义的Application,两个Activity都是入口:<appli原创 2017-05-26 11:50:18 · 774 阅读 · 0 评论 -
android window 一些属性说明
android window 一些属性说明<item name="android:windowFrame">@null</item> :Dialog的windowFrame框为无<item name="android:windowIsFloating">true</item>:是否浮现在activity之上<item name="android:windowIsTranslucent">fals原创 2016-11-23 11:46:28 · 357 阅读 · 0 评论 -
安卓着色器Tint的使用
作用:可以为图片设置不同的颜色样图(一张图片实现不同的效果):直接在xml中设置:<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher" android:id原创 2016-11-15 20:30:48 · 577 阅读 · 0 评论 -
一句代码实现标题栏、导航栏滑动隐藏
来自http://androidwing.net/index.php 我这里只是简单的介绍如何的使用,具体实现参考原博主1.在gradle 编译库文件allprojects { repositories { jcenter() maven { url "https://jitpack.io" } }}dependencies { compi转载 2016-11-15 09:41:32 · 2827 阅读 · 1 评论 -
(二)自定义View进阶篇(自定义View的分类和流程)
自定义View绘制流程函数调用链一.自定义View分类1.自定义ViewGroup自定义ViewGroup一般是利用现有的控件根据特定的布局方式来组成新的控件,大多继承自ViewGroup或各种Layout,包含有子View。(简单来说就将多个控件拼成一个控件)例子://继承LinearLayout布局控件 public class uploadview extends LinearLayout原创 2016-11-16 17:34:05 · 255 阅读 · 0 评论 -
Android酷炫欢迎页播放视频,仿蚂蜂窝自由行和慕课网
Android酷炫欢迎页播放视频,仿蚂蜂窝自由行和慕课网参考:http://blog.csdn.net/linglongxin24/article/details/53115253 一.资源准备自己随便下几个 二.1.在项目的res下新建一个raw文件夹,放入准备好的这三个视频2.自定义播放视频的CustomVideoView 在这个自定义View里面提供一个播放视频的方法。用户只需要传入播放转载 2016-11-11 14:09:25 · 476 阅读 · 0 评论 -
Android中当用户关闭通知消息权限后Toast显示不出的问题
直接上代码解决:1.自定义一个有Toast的功能的View:package com.asfenqi.android.app.view;import android.app.Activity;import android.content.Context;import android.content.res.Resources;import android.os.Handler;import a原创 2016-11-10 18:40:27 · 990 阅读 · 0 评论 -
自定义View系列(一)基础篇
Android的坐标系一.屏幕坐标系:在Android中一般定义屏幕的左上角为坐标原点,向右为X轴的增大方向,向下为Y轴的增大方向,与数学中常见的坐标系是有差别的。Android中屏幕默认坐标系如下,黄色部分为手机屏幕:View坐标系 getTop(); //获取子View左上角距父View顶部的距离 getLeft(); //获取子View左上角距父View左侧的距离原创 2016-11-16 15:59:03 · 287 阅读 · 0 评论 -
Android加入热修复报java.lang.UnsatisfiedLinkError: 解决方法
加入阿里云移动热修复(Mobile Hotfix)后报错java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/test.img.com.myimgtest-1/base.apk", zip file ....couldn't find "libjpgt.so"解决方原创 2017-10-27 09:25:54 · 436 阅读 · 0 评论 -
RecyclerView (万能的适配器和实现列表项的拖动和左右滑动)
RecyclerView (万能的适配器和实现列表项的拖动和左右滑动)参考鸿神的代码。。。1.万能的RecyclerView 适配器《1》第一步BaseAdapterpackage wang.dom.adapter;import android.content.Context;import android.support.v7.widget.RecyclerView;import android原创 2016-11-09 18:20:52 · 1743 阅读 · 0 评论 -
Android implementation 、compile、api区别
compile与api无区别 compile与api 编译的依赖作用于当前的整个项目implementation编译的依赖只作用于当前的module: 例如:项目里有 A,B,C三个 moudule,在 A mondule 中使用 implementation 添加的依赖只作用于 A mondule,在 B,C中无法访问; 如果 在 A moudle 中使用 compile或api 添加...原创 2018-09-06 10:29:15 · 562 阅读 · 0 评论 -
Unable to get provider com.google.firebase.provider.FirebaseInitProvider 报错
java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitPro...原创 2018-08-20 18:04:10 · 2318 阅读 · 0 评论 -
android Studio 使用命令行查看项目错误信息
直接在 studio中的 Terminal 中数组此命令,就可以查看到详细的错误信息gradlew compileDebugSources原创 2018-08-02 11:19:39 · 10437 阅读 · 0 评论 -
Android-app更新-查看pdf-权限动态申请-android7.0以后安装apk
查看pdf使用的是 第三方AndroidPdfViewer框架导入包dependencies { implementation 'com.android.support:appcompat-v7:26.1.0' //导的是这个 implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'}加权限...原创 2018-05-24 15:08:12 · 921 阅读 · 0 评论 -
Android-动态申请权限-及打开权限设置
//权限申请回调所需要的标识码 private static final int MY_PERMISSION_REQUEST_CODE = 10000; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);...原创 2018-05-23 09:28:16 · 2647 阅读 · 3 评论