自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 10- 系统DownLoadManager

10- 系统DownLoadManager直接看代码吧,使用系统下载的两种办法:第一种:直接调用浏览器打开url,开始下载;附上一篇非常有用的博客:http://blog.csdn.net/xietansheng/article/details/52513624public class MainActivity extends AppCompatActivity { private DownloadManager downloadManager;//下载manger privat

2020-08-07 14:34:46 201

原创 9- 自定义侧滑删除Recycleview

9- 自定义侧滑删除Recycleview多层滑动嵌套可能会有问题,最好放在单层使用上public class CustomRecycleView extends RecyclerView { private static final String TAG = CustomRecycleView.class.getSimpleName(); public CustomRecycleView(Context context) { super(context);

2020-08-07 14:31:40 172

原创 8- app如何修改包名

8- app如何修改包名其实这个还真的挺简单;我们都知道,1- 包名相同,直接覆盖(签名相同)2- 包名不同,两个应用所以为了比较版本不同,测试比较方便就需要在同一个手机上安装两个不同版本的同一个APP;如何解决:让他两的包名不同就可以了;改变包名—》两步走:1- raname 包名2- 在build中修改 Application ID: 然后同步3- 检查 Android minifest中的包名,如果没变,请重启as...

2020-08-07 14:28:15 2426

原创 7- 一个APP多个图标 多个名称

7- 一个APP多个图标 多个名称一直以来都非常奇怪的是,有时候我们安装了一个APP但是之后,在手机界面突然多了两个APP的图标,而且打开之后的页面还不同;属于同一个APP;其实只要在Android manifest中设置就可以了这样的做法有一点不同的是,只要卸载到其中一个APP 那么两个多会被卸载掉...

2020-08-07 14:25:34 1153

原创 6- 自定义Dialog

6- 自定义DialogDialog非常常见,也是必不可少的UI,但是系统自带的UI的确实很多时候不能满足UI上的要求,功能到时很合适,这时候我们就需要自定义Dialog了;自定义dialog其实是属于自定义继承控件的;首先自定义一个CustomDialog extends Dialogpublic clas View.OnClickListener { private static final String TAG = CustomDialog.class.getSimpleName()

2020-08-07 14:23:49 148

原创 5- 自定义自绘制View 带百分百的进度条

5- 自定义自绘制View 带百分百的进度条先来看看效果图这是自己绘制的一个带百分比的进度条,其实比较简单总体分成三个部分;1- 左边矩形2- 中间文字3- 右边矩形所以我们就可以开始绘制了,绘制在哪里开始?当然是在onDraw方法中了 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas);//画文字 text = (int)(getPercent() * 100)

2020-08-07 14:21:36 195

原创 3- Android布局优化-meger标签使用

3- Android布局优化-meger标签使用小白:之前分享了ViewStub标签的使用,Android还有其他优化布局的方式吗?小黑:<merge />标签用于减少View树的层次来优化Android的布局。先来用个例子演示一下:首先主需要一个配置文件activity_main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://

2020-08-07 14:14:48 139

原创 2- 自定义组合控件-通用Common_Title

2- 自定义组合控件-通用Common_Title前言:自定义组合控件应该是自定view中比较简单的一种情况了;自定义view的常见三种情况:自定义组合控件自定义继承控件自定义自绘制控件1:自绘控件View上所展现的内容全部都是我们自己绘制出来的。绘制的代码是写在onDraw()方法中。2:组合控件组合控件的意思就是,我们并不需要自己去绘制视图上显示的内容,而只是用系统原生的控件就好了,但我们可以将几个系统原生的控件组合到一起,这样创建出的控件就被称为组合控件。3:继承控件 --

2020-08-07 14:09:20 525

原创 1- CrashHandler 知识点的使用

1- CrashHandler 知识点的使用在Android中我们经常遇到错误,根据不同的机型,不同的网络情况,在我们的产品上线之后, 用户在不同的环境中可能会产生不同的bug,但是这些bug是我们在上现在之前的测试环节没有测试出来的隐形bug;而此时我们开发人员没有办法获取bug的log日志进行分析,就比较麻烦;此时我们就需要借助 CrashHandler捕获全局异常并且进行处理,将日志发送我们的服务器了;java的Thread中有一个UncaughtExceptionHandler接口,该接口

2020-08-07 13:58:27 1219

原创 4- Android四种自定义圆形ImageView的方法

介绍四种自定义圆形ImageView的方法BitmapShader: 使用着色器Xfermode:使用图层叠加ClipPath:通过对画布裁剪的方式RoundedBitmapDrawable: 系统API圆角类前面三种是通过继承ImageView重写onDraw()方法实现最后一种是系统API直接使用。每一种方式都能实现显示圆形图片, 我们主要从以下几个方面来比较各个方...

2020-03-04 15:33:58 8385 2

原创 Databinding和Livedata UI不刷新的问题

Databinding和Livedata UI不刷新的问题导致UI不刷新的问题有两种:mBinding没有设置setLifecyclerOwner(this) mBinding = DataBindingUtil.setContentView(this, R.layout.activity_simple1); mViewModel = new ViewModelPro...

2020-02-21 11:43:10 5930 4

原创 【Android项目】本地FM收音机开发及源码简析

【Android项目】本地FM收音机开发及源码简析目录1.概述2.收音机的基本原理3.收音机其他信息 RDS功能4.Android开发FM收音机源码解析5.App层如何设计本地FM应用6. 总结1.概述本地FM(收音机)应用不同于现在的网络FM(喜马拉雅,考拉等),是由Android手机硬件的调谐芯片,通过接收和解调电台发出的电磁波的调频(FM)或调...

2019-08-31 15:32:27 13047 8

原创 【Android小知识点】Widget中实现动画的一种极简方式

前言Android中的Widget俗称桌面小部件;大家可能用的不多,因为除了系统应用的Widget可能会默认显示在桌面;其他第三方安装的应用都需要你长按桌面,然后点击添加小部件,选择一个放到桌面才能使用。这种手动的方式对用户来讲比较麻烦,用的很少。所以Android原生对Widget的支持其实是比比较弱的,只能显示部分系统原生的View。但是这并不能阻挡我们这些拥有发散思维而不懂技术开发的产品...

2019-07-23 20:33:57 1465 3

原创 自定义View系列1:介绍目录和自定义View的分类

自定义View系列1:介绍目录和自定义View的分类引言1. 简介2.学习目录3.学习目标4.学习计划5.自定义View的分类5.1 完全自定义View5.2 完全自定义View5.3 自定义组合View引言这将是一个系列的博客,主要是针对Android 自定义View的学习和工作过程总结。借鉴了一些前人们的优秀文档比如【扔物线】老师HenCoder系列,以及CSDN其他优秀的作者的文档;感...

2018-12-18 22:55:55 147

原创 Activity 启动时序图

本时序图是基于Android 8.0的源码绘制的,参考了《Android 开发艺术探索》,对Activity的启动流程进行了熟悉Activity 启动流程图 Activity的启动其实是有两种情况的,         第一种是从桌面上的icon图标,点击进入;         第二种是在代码中通过 startActivity(Intent)的方式启动的;本文档是介绍的这种方式;入口...

2018-12-05 22:12:10 1635

原创 A problem occurred starting process 'command 'xxx/android-sdk-linux/build-tools/23.0.2/aidl

org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'xxx/android-sdk-linux/build-tools/23.0.2/aidl''或者org.gradle.process.internal.ExecException: A problem occur...

2018-12-03 12:33:04 1739

原创 HTTP 你到底是谁 第一篇

题目: HTTP 你到底是谁 第一篇 前言: 作为一个做了2年Android 开发的 IT人, 对http 既熟悉又陌生; 天天都在用,但是当别人问的时候却是"懵逼"状态, 根本没办法装逼, 所以为了装逼成功, 我发出了内心的疑问 "HTTP 你到底是谁"; 当然第一件事是百度一下(不要鄙视我没用google);1. 超文本传输协议(HTTP HyperText Transfe...

2018-11-05 21:15:01 939

转载 总结和分析几种判断RecyclerView到达底部的方法

总结和分析几种判断RecyclerView到达底部的方法原文链接:http://www.jianshu.com/p/c138055af5d2上一篇文章我讲到用事件分发的原理结合SwipeRefreshLayout写一个RecyclerView的上下拉,里面有一个判断RecyclerView是否到达底部的方法isBottom。我的同事用了这个上下拉之后发现有些小bug,没考虑周全,譬

2017-06-28 17:25:55 303

原创 Glide加载图片遇到的错误:You must not call setTag() on a view Glide is targeting

今天在使用Glide的时候 出现了You must not call setTag() on a view Glide is targeting的错误;在此记录一下,查阅网上的相关资料有这几种情况1- 在ListView中使用Glide加载图片,有可能会出现这个情况如果你的item只是单独的一个ImageviewImageViewxmlns:android="http://

2017-06-27 16:34:40 750

原创 AS build常见错误:Could not find method ?apply() for arguments

当我们从网下down了一个app项目 到自己的Android studio上编译的时候 修改了 build或者 gradle的版本(可能没修改也出现了)Could not find method ?apply() for arguments  这个错误,反复验证 没有什么其他问题的时候 可以尝试以下方法:1- 找到出问题build.gradle 复制里面所有的内容2-

2017-06-23 21:05:29 7235

原创 Android简单自定义圆形Imageview

Android中的圆形Imageview  使用的挺多,但是原生不能切圆形1.自定义一个MyImageview 继承 Imageview2.重写Ondraw()方法

2017-06-05 16:04:23 343

转载 editText限制输入的5种方法

XML布局文件限制:LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height

2017-04-01 10:29:29 541

转载 Activity中finish()和onDestroy()的区别

Activity中finish()和onDestroy()的区别finish()方法用于结束一个Activity的生命周期,而onDestory()方法则是Activity的一个生命周期方法,其作用是在一个Activity对象被销毁之前,Android系统会调用该方法,用于释放此Activity之前所占用的资源。finish会调用到onDestroy方法,

2017-03-29 11:26:01 557

转载 Android NDK探索连载-3 FFmpeg的编译及jni相关调用

这里就直接分享三篇非常有用的链接,从ffmpeg源码的编译,到jni层编译,还有java应用的调用,亲测可用,可能FFmpeg的源码会出现很多问题,最好在Linux环境下编译,我在win10 下 装了cygwin进行编译,但是由于路径问题,没编译成功,还有如果最新版的FFmpeg源码编译不成功,可以试一下之前版本的;Android最简单的基于FFmpeg的例子(一)--

2017-03-28 08:51:59 257 1

转载 Android NDK探索连载-2 使用NDK编译.so文件-实例

前言:  从Android Studio开始,就支持jni和.so库调用了。环境:  Windows 7+Android Studio2.1.2+NDK版本:android-ndk-r10e准备工作:  1) ndk文件:    1,可以根据需求,从网上下载, 网址(科学上网): https://developer.android.com/ndk/d

2017-03-28 08:46:34 554

转载 Android NDK探索连载-1 NDK是什么

1、前言  2009年6月26日,Google Android发布了NDK,引起了很多发人员的兴趣。NDK全称:Native Development Kit。下载地址为:http://developer.android.com/sdk/ndk/1.5_r1/index.html。2、误解  新出生的事物,除了惊喜外,也会给我们带来一定的迷惑、误解。  在Google

2017-03-16 13:07:37 482

原创 greenDao--3.2基本使用

GreenDao3.2用法详解Github地址:https://github.com/greenrobot/greenDAO一、简介greenDAO是一个对象关系映射(ORM)的框架,能够提供一个接口通过操作对象的方式去操作关系型数据库,它能够让你操作数据库时更简单、更方便。GreenDao 优点:1.性能高,号称Android最快的关系型数据库2.内存

2017-03-06 18:20:52 2781

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除