自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Code Issuer的博客

Always trust that the best thing will be happen soon

  • 博客(32)
  • 资源 (6)
  • 收藏
  • 关注

原创 Android web界面丝滑进度条

一、概述编写Android中Web界面,基本都是WebView + ProgressBar相结合使用。通过WebChromeClient的onProgressChanged(WebView view, int newProgress) 方法可以拿到当前url的加载进度,并在此方法中调用ProgressBar的setProgress方法将当前网页进度以进度条的形式表现在UI界面上。核心代码如下:...

2019-07-21 16:44:04 1007

原创 ImageView scaleType属性

文章目录前言类型解释名词解释缩放比例规则前言ImageView scaleType 共八种类型,分别为:center、center_inside、center_crop、matrix、fit_xy、fit_start、fit_center、fit_end , 默认scaleType类型为fit_center类型解释center: 保持原图的大小,不做任何比例缩放处理,显示在ImageV...

2019-06-13 16:11:52 366

原创 Retrofit 注解最全使用讲解

method annotation 方法注解@GET @POST @Multipart @FormUrlEncoded @Headers (@PUT/@DELETE/@PATCH/@HEAD 不经常使用所以省略)@Get ① 不可以搭配 @FormUrlEncoded 和 @Multipart ②可以搭配@Headers@POST ① @FormUrlEncoded (普通表单上传) / @P

2017-11-29 12:03:07 807

原创 Git 命令

Git 命令① git clone SSH网址。 克隆工程到本地② git branch zz 本地创建zz一个分支③ git checkout zz 切换到zz分支④ git checkout -b doudou 本地创建zz 分支,并切换到zz分支⑤ git branch -d branchname 删除本地分支⑥ git push origin :branchname 删除远程分支⑦

2017-11-28 11:19:06 291

原创 23种设计模式☞开闭原则

软件实体应该对扩展开放,对修改关闭 > 其含义就是说一个软件实体应该通过扩展来实现变化,而不是修改已有的代码来实现变化。开闭原则对测试的影响一个项目基本的流程应该是这样的:项目开发,重构,测试,投产,运维。 其中重构是对原有代码进行修改。投产之后发布到线上的代码都是经过千锤百炼的,可以说是没有任何错误的,稳定的代码。现在需求变化了,如果直接修改以前的代码,那是不是测试人员就需要重新测试一遍啊。运

2017-11-07 16:02:02 500

原创 从一个最简单的例子来看Retrofit(一)

Demo代码分析Retrofit 初始化本文将从Retrofit 官网上提供的一个简单的例子来大致看一下Retrofit的代码Demointerface: @GET("/repos/{owner}/{repo}/contributors") Call<List<Contributor>> contributors(@Path("owner") String owner, @Path(

2017-09-21 22:12:09 733

原创 从一个最简单的例子来看Retrofit(二)

从一个最简单的例子来看Retrofit(2)本文将从Retrofit 官网上提供的一个简单的例子来大致看一下Retrofit的代码Demointerface: @GET("/repos/{owner}/{repo}/contributors") CallList> contributors(@Path("owner") String owner, @Path("repo

2017-09-16 22:55:43 447

原创 Android ApiClound 自定义模块未绑定解决方案

由于公司发展需要决定由原生态开发转向混合开发。所谓混合开发就是我们android 开发人员和IOS开发人员各自对自己原生模块的代码进行封装,以便H5开发人员能够通过JS进行调用。 而原生和H5之间交互的媒介我们公司则选用了Apiclound 平台。下面说一下在封装自定义模块出现模块未绑定,应该从哪几方面考虑:模块打Jar 包出现错误我们知道android 打成jar 包是不含Resource文件夹

2017-09-11 16:22:44 3863

原创 关于Handler几个小知识点

说到Handler想必大家都不陌生!Android中主要的消息机制也就体现在Handler上,在日常开发中最常见的操作就是通过Handler更新UI(子线程是不允许更新UI的)。简要概括一下Handler机制Handler在初始化过程中和Looper进行绑定,确切来说是为了和MessageQueue 进行绑定,有了MessageQueue消息队列就可以通过sendMessage等方法将Messag

2017-06-04 14:06:27 466

原创 AsyncTask源码解析

这一篇主要记录一下AsyncTask( compileSdkVersion 25 buildToolsVersion “25.0.3”)AsyncTask基本示例: //AsyncTask(Params,Progress,Result) class MyAsyncTask extends AsyncTask<Integer, Integer, Void> { pri

2017-06-04 14:03:11 363

原创 位运算在Android中的使用场景

首先说一下基本位运算知识:位运算:位运算就是把数字用二进制表示之后,对每一位上0或者1的运算。位运算总共只有5种运算:与、或、异或、左移、右移。如下表:左移运算:左移运算 左移n位的时候,最左边的n位将被丢弃,同时在最右边补上n个0.比如:00001010 << 2 = 00101000 10001010 << 3 = 01010000右移运算: 右移运算符m>>n表示把m右移n位。右移n位的时候

2017-06-03 11:26:14 964

原创 自定义View技巧

这篇博客会记录自定义View中几个技巧,帮助更好,更快实现自定义View灵活

2017-05-21 15:28:16 407

原创 Android 热修复Tinker 在项目中的使用

热修复技术出来也已经有好长一段时间了,目前比较主流的热修复方案主要有一下几种:QQ团队基于android dex分包方案提出的热修复方案,代表:Nuwa , HotfixAlibaba 提出的热修复方案,代表:AndFix(目前使用最多,兼容问题较严重)Tecent 提出的热修复方案 代表: tinker (目前性能最优,兼容最好)blog 上很多大神都对热修复技术做出过自己的分析

2017-04-16 17:21:32 1489

原创 TypedValue 和 TypedArray

获取自定义属性值常会使用TypedValue 和 TypedArray 类TypedValueapplyDimension ( return float )complexToDimension (return float)TypedArraygetDimension (return float)如下是自定义View中获取自定义属性方法: T

2017-04-05 23:09:09 1423

原创 MeasureSpec类理解

MeasureSpec 常用在自定义View中,自定义View中经常要复写onMeasure方法: @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSp

2017-03-20 23:02:30 1168

原创 java 序列化和反序列化

序列化使用场景通过Intent 或者 Binder 传输数据时将对象持久化到设备上序列化类serializable (java.io.Serializable)parcelable (android.os.Parcelable)Serialzable使用示例:public class Book implements Serializable{ priv

2017-03-20 22:36:28 308

原创 fork函数

系统环境:ubuntu进程特性:每一个进程都有一个非负整型的唯一的进程id.一个进程结束之后,其进程id 不用被新创建进程立即复用,大部分unix系统为采用延迟复用算法。UNIX 中提供获取进程id 和 父进程 id 函数 pid_t getpid (void); // return process id pid_t getppid (void); // return pa

2017-03-12 21:38:55 558

原创 从一个小例子理解stdio 和 sysio

系统环境 ubuntu#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(){ putchar('a'); write(1,"b",1); putchar('a'); write(1,"b",1); putchar('a'); write(1,"b",1); exit

2017-03-05 21:29:04 455

原创 Canvas 方法效果演示

好记性不如烂笔头,记录一下canvas常见的方法及效果演示Canvas多使用在自定义View中,onDraw()方法绘制图形 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); }canvas 可以大致分为一下几类:drawXXX 等一系列绘制方法scale rotat

2017-03-03 23:40:39 470

原创 setStrokeWidth() 方法思考

最近新买一款Nexus 6 手机,看着手机上原生的Android 界面,一种说不出的感觉!这可能就是对谷歌的信仰!setStrokeWidth()是Paint中的一个方法,自定义View的时候经常用到 /** * Set the width for stroking. 设置描边的宽度(也就是控制画笔的粗细) * Pass 0 to stroke in hairline m

2017-03-03 20:38:00 6495

原创 Activity 中点击Button 让 Editext 失去焦点 Button 点击两下解决方案

好久不写blog了,今天就记录下一个小问题吧。如标题:一个界面中有一个Editext ,一个Button 如何点击Button让Editex失去焦点。直接上代码xml 布局:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="h

2016-12-15 22:51:53 3281 1

原创 横竖屏切换SurfaceView 大小的调整

视频播放的实现大概有以下形式:1.使用系统自带视频播放类VideoView2.使用MediaPlayer+surfaceView3.使用一些第三方框架如:vitamio 还有像新浪在github上开放的视频播放框架等...使用场景:第一种方法:简单,但是VideoView不支持自定义视频,也就是你只能使用系统给你提供的布局,这在很大时候是不符合我们项目需求的。第二种方法:使

2016-10-30 19:37:49 12071 1

原创 android:如何做到软件盘弹出只顶起输入框

最近在做视频直播项目中遇到这个问题,当用户点击主播房间,进行直播观看,在下方点击输入框发送信息时,发现了不光是EdiTextView 被软键盘弹起,就连surfaceView也被压扁了。哦,忘记说一点我在Manifest.xml定义该Activity的属性中添加的是WindowSoftInputMode="adjustResize"。首先说一下两种WindowSoftInputMode的两个属

2016-10-26 10:48:53 8752 1

原创 Error:(1, 0) Plugin with id 'com.android.application' not found. 解决方案

使用AndroidStudio 导入一个项目的时候出现上述标题错误:Plugin with id 'com.android.application' not found。原因:你导入的是一个module,而不是一个Project。你的操作步骤大概如下图:选择ImportProject 是不正确的。正确步骤如下:1.新建一个工程Project。(这个就不多说了)2.选

2016-10-25 15:17:51 760

原创 java设计模式-观察者模式

大家可能都在用RxJava 或者是EventBus 吧!其实这两种工具都是运用的观察者模式,要想弄懂上面两个库,观察者模式是基础。接下来我就简单的介绍一下观察者模式。观察者模式分为两个部分:观察者(observer)和被观察者(observable). 和我们平常使用的监听回调不同(一对一),观察者模式采用的是一对多的形式,当被观察者发生改变之后,发送消息给观察者,然后观察者做出相应的改变,这

2016-10-22 10:06:14 285

原创 android多媒体-视频录制及存储

以前写过一个视频录制功能,最近又看了一下,重新修复了一些问题。由于代码比较长,我就不给大家去一点一点的讲解了,在代码中我都注释的很详细了,在这只是罗列出来一些注意的事项,代码大家可在文末进行下载。ok,先上一张效果图:怎么样,从效果上看还是可以的吧!视频录制功能包括:摄像头的切换、闪光灯的开启、视频录制并保存、摄像头自动对焦 功能。需要注意的是一旦视频录制开始就能有办法切换摄像头或者开

2016-10-05 20:01:36 2522

原创 自定义View的实现

今天的主题是自定义View,其实自定义View,对于一些刚刚从事android的兄弟可能还是比较惧怕的,听起来自定义Vi

2016-10-04 18:30:13 632 1

原创 实现View 滑动的几种方法

时间过得真快,一转眼就要到10月了,这几天风刮的厉害,气温骤降,看来秋天真的要来了!今天我主要是给大家讲一些实现View平滑的移动的方法,View 平滑移动的方法一般有一下三种:1.通过View 本身提供的scrollTo / scrollBy 方法实现滑动2.通过动画给View施加平移效果来实现滑动3.通过改变View 的LayoutParams 使得重新布局从而实现滑动

2016-09-27 13:19:02 450

原创 RequestLayout() , Invalidate() , layout()之间的区别

在自定义控件的过程会遇到以上方法,三个方法的区别如下:1. requeLayout() : 控件会重新执行 onMesure() onLayout() ,比如 ScrollView中有LinearLaout ,LinearLayout里面有纵向排列的ImageView和TextView,那么假如ImageView的长宽发生了变化,而要立即在手机上显示这个变化的话,就可调用 imageView.

2016-09-11 15:36:26 10243 3

原创 使用FFmpeg4android 实现视频 水印 剪切 压缩 旋转

翻看了一下自己的上一篇博客,7月5号写的......,瞬间不高兴了,写博客贵在坚持,而自己在这段时间确松懈下来了,实在不应该呀!罪过罪过!最近这一段时间内,公司的项目迭代更新需要添加新的功能包括:视频的录制和压缩上传等....,这些功能中 视频压缩上传不是很好解决。大概花了我一周左右的时间去研究和写demo.过程是痛苦的,最终黄天不负有心人啊,还是弄出来了。测试结果:录制5分钟 77M  压缩

2016-07-25 23:42:00 6330 17

原创 Android Mediaplayer error (1, -2147483648) Error (-38,0)解决方案(网络记载和本地加载两种情况)

在项目中使用surfaceView 或者使用 mediaplayer + surface 来进行网络或者本地视频播放,经常会遇到  error (1, -2147483648) Error (-38,0)这样的错误,error value (1, -2147483648) , 1 代表着MediaPlayer.MEDIA_ERROR_UNKNOWN,-2147483648 在framework

2016-07-05 09:05:08 42714

原创 android 底部弹出提示框的实现方式

仿 ios alertDilog 实现底部弹出对话框无间隙,支持添加任意多个Item内容

2016-07-02 16:28:39 8007

SmoothProgressDemo.rar

blog的 https://blog.csdn.net/wning1/article/details/95936509 的代码

2019-07-21

Tinker 热修复demo

http://blog.csdn.net/wning1/article/details/70194375 Tinker 热修复项目引用 示例代码

2017-04-16

android 视频录制

功能详细的视频录制项目 使用过程中有什么不懂,请参照 http://blog.csdn.net/wning1/article/details/52740264 博客。

2016-10-06

星级自定义View

http://blog.csdn.net/wning1/article/details/52734829 中所讲解的自定义View 的代码资源

2016-10-04

android 仿ios 弹性ScrollView 上下滑动

将文件复制到工程中,将包名改为自己项目的包名即可!简单好用

2016-08-30

仿ios从底部弹框

封装从底部弹出对话框调用十分方便。可AlertDialog显示多Item调用方法无区别。

2016-07-02

空空如也

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

TA关注的人

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