自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于如何实现Android透明状态栏的总结

好久没写博客了,哈哈,言归正传,最近遇到了透明状态栏的需求,下面总结一下 ,希望能帮助到有需求的人。我们先看下之前正常的效果,顶部是一条明显的橙色的颜色。(这是临时找的图,跟我代码的效果类似,意思一样)为了需求和美观,我们要做成下面的样子(把顶部透明,样式基本就这样,只是找了类似的图片,动图懒得做~~~)下面直接说代码,首先要在theme中引用的styl

2017-12-01 11:04:12 1597

原创 Java 的虚拟机内存分配详解

Java的内存分配 算是 比较核心的 东西 ,但是 提早了解 这些知识 对学习 java 有很大的好处,知其然知其所以然~~~~◆计数器:我们在程序中无法控制,记录程序运行的位置,以及 实现 条件分歧 的。◆栈:存放基本类型的数据和对象的引用(就是指向堆里面的地址 比如: 0x00000),对象本身不存放在栈中,而是存放在堆中◆堆:存放用new产生的数据 ,(对

2017-03-08 13:57:57 699

原创 Vitamio 视频框架使用心得

vitamio框架是一个国产项目,大大简化了ffmpeg 的使用难度。可以在github 下载集成到自己的 项目中来。xml 布局中  io.vov.vitamio.widget.VideoView 作为视频的容器,默认宽高为 match_parent ,在初始化时候视频后会根据视频的宽高显示。在播放视频之前需要 初始化 .so 的组件,建议在 要播放的 Activity 的最

2017-03-08 12:00:26 3558

原创 Android WebView 与 javascript交互

有些时候为了偷懒或者业务需求,App里有时候是套网页的,好比PC 版的 QQ音乐库。点击网页里的播放为啥软件就会响应呢?道理是一样的,只不过现在主角是 Android 而已。    webView 和 javascript 交互,也就是相互调用对方的方法,也就叫做 混合开发,是不是瞬间感觉高大上了。刚开始随意百度了一下,都是坑人的东西,各种代码不全有问题。谷歌之后才看明白了,其

2017-03-08 11:51:52 468

原创 android App微信支付遇到的坑

有句话说的好:难的不会,会的不难。从不会到会,你才会恍然大悟,原来就是这么简单啊,当别人再问你的时候,你就会回答这个问题很简单。感觉有必要记录一下微信支付的步奏,以及一些坑人的地方。    一般你去百度这个,会出现一大堆的demo,但是很少是能跑起来的,也没有任何说明。现在说说微信支付的步奏。    首先就是  你要在demo里面填写好商户id,密钥什么的,然后代码 通过你

2017-03-08 11:39:28 878

原创 如何获取Android唯一标识(唯一序列号)

有很多场景和需求你需要用到手机设备的唯一标识符。在Android中,有以下几种方法获取这样的ID。1. The IMEI: 仅仅只对Android手机有效:TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); String szImei = Telephon

2017-01-06 08:50:41 713

原创 Android通过访问相机或相册来更换头像

首先 我们实现的是点击头像   出现一个dialog   选择相机或是相册 来选择照片进行头像更换   这样  由于是自己写的项目  我把有关更换头像的这个class的全部代码都贴在这儿  代码我都备注上了   然后大家自己捡着有用的几个方法  去写  我都有说明  下面看代码public class Fragment_Mine extends Fragment { @InjectView

2016-12-29 18:47:01 1161

原创 团队在Github上协同开发项目流程

多用户基于同一个Github上得项目并行开发,当前用户的开发流程:注:origin:默认的远程主机名master:默认的远程主分支名1:首先要将Github上的项目克隆到本地(第一次克隆,说明你的本地上还没有项目源码,所以先克隆)。Git clone “URL”2:然后建立一个属于自己的分支

2016-11-25 15:00:24 493

原创 如何实现shardSDK分享以及自定义图标实现

首先前期我们去官网下载shardsdk以及快速集成文档中都有详细步骤等等一系列导入自己的项目中我就不多少了  我直接上主要代码 比较简单,代码部分就不要按照文档上写了public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanc

2016-11-14 11:54:48 948

原创 简述23种java设计模式之策略模式(strategy)

通过学习java设计模式,了解到之一的策略模式,我们通过一个 简单的例子来分析一下策略模式及他的好处。首先我们举一个鸭子的例子,我们先创建一个鸭子类Duck,并写两个它的功能。注意我们把这个类写成抽象类,因为我们后面要有不同的鸭子来继承它。这里我写了一个抽象方法,为了后面继承实现时的一些逻辑操作。public abstract class Duck{ public voi

2016-10-11 19:03:26 867

原创 简述Android中如何实现播放视频形式的引导页面

以前呢好多应用的引导界面大多都是ViewPager轮播等,现在好多应用为了实现炫酷的引导界面都使用了播放一个炫酷的视频来作为引导界面,而这种炫酷的方法还比较省事儿,下面我写一下怎么去实现,而且是非常非常简单的就可以达到效果。 好,首先在项目中自定义一个videoview ,实现三个构造方法,然后写onMeasure方法:在里面计算一下它的高度,这个高度指的是这个组件的高度,因为我们播放的视频要

2016-09-27 10:53:15 4084 1

原创 简述Java设计模式之单例模式(Singleton)

首先我们了解下什么是单例模式:单例模式就是保证了某个类只有一个实例,而且自行实例这个类并向整个系统提供这个实例,什么时候我们需要设计成单例模式呢,比如一些大的类,反复用到的类:ImageLoder ,Volley等等。下面我用简单代码来展示一下单例模式的两种形式(饿汉式和懒汉式),这里我就不做过多的讲解了,我在代码中都有详细的注释。/* 这是懒汉式基本写法 它只声明对象,不创建

2016-09-21 09:34:52 877

原创 简述如何嵌套使用Viewpager,点击图片放大查看图片,并且使用PhotoView进行图片处理

我们对于ViewPager都不陌生,我们可以用它来实现图片的轮播等功能,今天我把图片的轮播加上了点击图片查看图片,并且使用PhotoView放大缩小图片避免图片失贞等功能。首先我们导入PhotoView的jar包;;1.我们在主布局中很简单就是一个viewpager控件;;<android.support.v4.view.ViewPager android:id="@+id/v

2016-09-20 10:02:06 1844

原创 简述OkHttp的使用:get、post请求

我这里主要是介绍了okhttp的两个请求方式,首先呢我们要导入jar包,--------使用Ardroid Studio的用户直接在dependencies中加入: compile 'com.squareup.okhttp3:okhttp:3.4.1'--------使用ADT的用户 ,可以下载最新的 okhttp he latest JAR ,添加依赖就可 以了。注意:okhttp内

2016-09-15 14:07:23 1063

原创 简述如何使用NDK,调用C/C++语言

首先  我们先来了解一下什么是NDK。我们都知道Android 应用是在dalvik虚拟机中运行的。NDK可以让你使用本地代码语言来开发应用,比如说C/C++,这种方法对某些类型的应用的是有好处的,可以充分利用本地代码和在某些情况下加速代码的执行。对于绝大多数的应用来说,使用NDK并不是一个明智的选择,作为一个开发者,我们需要衡量它所带来的好处和缺点。使用本地代码并不一定可以使性能得到优

2016-09-12 17:17:14 994 2

原创 获取短信验证码并实现登录

其实短信验证很简单  下面我把过程简单的写一下,希望对大家有帮助首先我是这样一个界面xml代码如下:xml version="1.0" encoding="utf-8"?>LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:too

2016-09-11 20:05:56 10090 2

原创 ImageLoader的使用

首先导入我们要使用的jar包,下载地址:https://github.com/nostra13/Android-Universal-Image-Loader;下载完成后导入我们的工程项目中然后创建一个类继承Application首先我们通过位图加工厂得到一个图片设置效果的权限其次我设置里面的一些效果,直接上代码,里面都有注释options1 = newDisplay

2016-09-06 20:57:55 408

原创 百度地图SDK使用及配置到自己的工程项目中

首先进入百度地图API首页,下载jar包然后进行相关配置  添加到AndroidManifest.xml中然后导包注意百度地图的SDk 是分开的    他有定位SDK和基础地图,我们需要勾选下载  这个看自己项目需求了   这里我只选了两个定位和地图,  如果分开下载的话 他们的jar包会冲突运行时候会报错,,,,然后在这里p

2016-09-02 14:17:49 976

原创 给ImageView添加tag,避免view复用导致图片的重复

我们在使用SwipeRefreshLayout的时候,会用到listview或者PullToRefreshListView配合使用,但是我们在listview条目要求加载图片时(这个图片有可能一张,有可能多张)的情况下,这个就相对于有点复杂,复杂在你每个item获取的图片的数量都不一致,也不一样,也不确定他联网到的数据中到底有没有图片,,所以在这种情况下我是在布局中添加了ImageView组件,而

2016-09-01 21:24:44 3764 1

原创 Android开发java jdk环境变量配置

开发之前都需要配置相关的环境变量,一般的只要记住几个步骤就好,因为有时遇到电脑 重做系统,所以自己记录下配置过程那个打开系统环境变量我就不说了(我这里是 win10的)在”变量名“处填上”Java_Home“”变量值“为JDK安装路径,笔者的路径是”D:\Program Files\Java\jdk1.8.0_91“如下图片然后找到Path

2017-12-13 15:39:12 397

原创 关于android事件分发机制

首先插几个图下面是一个总体概括:事件由Activity的dispatchTouchEvent()开始,将事件传递给当前的Activity的根ViewGroup:mDecorView,事件自上而下传递,直到被消费。事件分发到ViewGroup时,调用dispatchTouchEvent()进行分发处理。首先会被ViewGroup的onInterceptTouchEvent()拦截。如果

2017-12-04 18:09:40 357

原创 项目中与php后台交接接口 javabean与请求返回的数据类型不匹配导致的出错

今天写代码   项目中登陆的接口交接的时候   我在请求接口的时候    产生了这样一个错误然后  这个错误找了半天  各种调试     ,才发现  我在测试时   输入正确的用户名密码  去请求 数据 是 正常的,但是输入错误的话,请求的结果就不对了    走到联网请求那一步 直接报上面的错 ,,错误大概意思就是 请求返回的数据类型跟你那个bean的类型不一致,,,后来调试了  才发现 

2017-07-26 17:18:54 801

转载 文章标题

var protocol = window.location.protocol; document.write('

2017-04-27 10:19:02 164

原创 Handler、MessageQueue、Looper 三基友关系图解

一个线程只能设置一个Looper 不然程序就会抛出异常。除了主线程(UI线程)外 ,其他线程里想要使用handler需要 Looper.prepare(); 创建Looper 然后在Handler 下面 调用Looper.loop(); 让 压缩机 跑进来,为啥主线程不用这样呢?因为主线程自己初始化了,表面上你看不到而已。                更具实践证明 你可以ne

2017-03-08 11:31:51 795

原创 常用的正则表达式大全

一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,

2017-03-08 11:23:00 360

原创 ScrollView 与 ViewPager 冲突的问题

在使用 ScrollView  的过程中会与很多控件发生冲突,比如ScrollView 里面嵌套 ViewPager ViewPager 的 wrap_content 和 match_parent 就会失效显示不出来,这个时候通常的解决办法就是 获取到 ViewPager 里面 全部的view 然后遍历 获得 高度,然后取其中最大的高度作为 ViewPager 的高度。这样 把 ViewPag

2017-03-08 11:19:18 665

原创 简述scrollview和listview和gridview的区别

scrollview中只能放一个子元素,当这个子元素的高度超过屏幕的高度时,就产生滑动了,且里面的元素是App运行一启动,页面展示后,scrollview中的所有的内容都加载到了内存中。所以当数据量大时,会影响性能。    listview是只有当滑动时才加载后面的。所以当数据量大时,选择listview可提高性能。    gridview是用于做几行几列的宫格用的,但是这个功能也

2016-11-09 09:23:29 697

原创 简述RecyclerView实现瀑布流并且随机自适应item的高度

我们常见的显示数据的控件listview,下面我简述 一下RecyclerView的使用及简单的现实数据首先在activity_main.xml中<android.support.v7.widget.RecyclerView android:id="@+id/recycler" android:layout_width="match_parent" android:layout

2016-11-08 20:16:12 4068

原创 点击CheckBox复选框是否记住密码

我们在写登录界面的时候经常会遇见输入密码下面有一个复选框记住密码,但是我个人感觉这个东西看起来简单,但实现起来还是有一点点小麻烦的,不过我已经操作出来供各位观看,下面直接上代码: editText = (EditText) findViewById(R.id.edit_yonghuming); editText1 = (EditText) findViewById(R.id.ed_

2016-10-20 20:37:41 4815

原创 简单的时间选择器DatePickerDialog

很简单   ,直接贴代码点击按钮弹出时间选择器//时间选择器 tv_timer.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //h获取当前时间

2016-10-20 10:20:00 413

原创 如何解决点9在Android Studio解析出错报错

我们使用点9图片时会报下面这个错误,那我来说一说怎么解决Error:error: Resource entry qipao is already defined.Error:Execution failed for task ':tts:processDebugResources'.> com.android.ide.common.process.ProcessExceptio

2016-10-20 10:05:05 9252

原创 java设计模式之观察者模式(observer)

今天我们讲一下设计模式之观察者模式,话不多说,首先我们以天气预报来讲一个例子吧。天气预报大家都知道,我需要对天气进行实时的监听,这个时候我们把这个天气状况当成一个对象来说,有可能这个对象的状态会发生改变,这个时候我们需要对其他的对象也做相应的改变。那么我们举一个例子来说,比如我们把天气预报当成一个被观察者,我们需要一个管理观察者的接口和一个天气预报观察者的接口,这里我直接贴代码看 //

2016-10-13 11:55:55 717

原创 Android 各种常见的错误解决方案

1.我们将Eclipse项目导入到Android Studio 中出现问题解决方案在build.gradle里添加以下两句:aaptOptions.cruncherEnabled = false     aaptOptions.useNewCruncher = false用来关闭Android Studio的PNG合法性检查的,直接不让它检查。

2016-09-26 11:00:00 594

原创 简述GifView的配置显示gif动态图片

之前我们会用帧动画来显示gif动图,但是那样的话我们需要把动图切成一帧一帧的,好几十张图片或许更多,可能会很不方便。那么下面我用GIfview框架来实现动图的展示。首先我们需要导入gifview的包:需在android build.gradle中添加:allprojects { repositories { jcenter() maven { url

2016-09-20 11:32:48 2526

原创 图片三级缓存原理

使用三级缓存目的速度快,可以提升用户体验度避免重复请求网络,重复加载,节省流量三级缓存简介内存缓存, 优先加载, 速度最快(加载到内存,就容易出现OOM)本地缓存, 次优先加载, 速度快网络缓存, 不优先加载, 速度慢,浪费流量内存溢出OOMAndroid默认给每个app只分配16M的内存(个别的不是)java中的引用强引用 垃圾

2016-09-06 10:19:47 514

原创 反编译,混淆加密代码教程

计算机软件反向工程(Reverse engineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中---------------好了 下面我把自己研究的反编译

2016-09-05 16:06:25 2865 1

空空如也

空空如也

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

TA关注的人

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