自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (1)
  • 收藏
  • 关注

原创 ionic sildemenu在大屏幕下一直显示,在小屏幕上隐藏的办法

在app.html中添加一个标签 ion-split-pane,注意 ion-nav标签里有一个main,如果没有它,会导致页面无法占满屏幕<ion-split-pane [when]="isEnableSplitSpane()"> <ion-menu [content]="content"> <ion-header> <ion-toolbar> <ion-title>

2018-03-04 20:01:21 651

原创 Ionic开发遇到的问题和解决方法

Android 无法打开外部链接$ cordova plugin add cordova-plugin-whitelist$ cordova prepare执行上面两个命令,然后修改config.xml文件,添加<allow-navigation href="*" />参考文档 https://www.npmjs.com/package/cordova-plugin-whitelist网页

2017-04-13 23:34:05 1054

原创 Ionic 环境搭建

Ionic 环境搭建Ionic的文档地址 http://ionicframework.com/docs/环境搭建只需要在浏览器中查看安装node.js安装npm注册cnpm(强烈建议使用cnpm,使用方法和作用和npm一摸一样,注册淘宝镜像的cnpm后,只需要在敲命令的时候多加一个c,就再也不需要漫长的下载等待了)cordova ionic命令行安装,打开命令行

2017-03-22 18:54:35 1083

原创 CSS选择器介绍

Css选择器介绍一个html元素可以使用一种样式展现出来,样式指的是颜色,大小,位置,字体等信息。一个元素使用哪一种样式来展现自己呢,这就涉及到Css的选择器了。css选择器会根据自己的规则去html网页中选择元素。被选中的元素就使用选择器指定的样式来展现自己。当一个元素被多个选择器选中时,并且多个选择器对同一个属性做出描述时,他只能使用其中一个选择器的样式;具体选择哪一种样式,要根据选择器的

2017-02-27 16:48:23 521

原创 Android 截取View,获取View的Bitmap的方法

需求用户在一个Layout中编辑文字和图片。当用户点击保存按钮时,需要将layout里的所有view以一张图片的形式保存并显示。这篇文章主要说的是如何获取View的Bitmap。bitmap的保存和显示不在此文讨论。方案一:使用系统API优点:简单,不易崩溃缺点:有可能得到null的bitmap。(原因是设备不同,显示的View也会不同,如果设置固定大小的View,当用户设备最大能承载的s

2017-01-11 12:00:48 11018 1

原创 简单易懂的UML

活动图概述活动图是一种描述系统行为的图,它用于展现参与行为的类所进行的各种活动的顺序关系。基本组成元素动作状态 动作状态是指执行原子的、不可中断的动作,并在此动作完成后通过完成转换转向另一个状态的状态。 特点是原子的,瞬时的,不可中断的。在一张活动图中可以多次出现。活动状态 活动状态可以分解成其他子活动或动作状态,由于它是一组不可中断的动作或操作的组合,所以可以被中断。活动状态可以有入口动

2016-12-07 15:03:41 499

原创 在屏幕上添加一个可移动,可点击的悬浮按钮。

需求: 1.随手指移动。 2.可触发点击事件实现步骤在Android Studio的Gradle中导入CircularFloatingActionMenudependencies { compile 'com.oguzdev:CircularFloatingActionMenu:1.0.2'}git地址:添加悬浮按钮-在oncreate方法里调用下面的FloatingActionB

2016-11-30 16:16:47 6069 1

原创 Java让线程执行完后再return的方法

final CountDownLatch latch = new CountDownLatch(1); //同步执行, DataUtils.stringConvertClass(lastVersionInfo, VersionInfo.class, new BaseAbstractListener() { @Override publi

2016-11-01 16:04:19 7166

原创 Linux进程间的通信方式和原理

进程的概念进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可以认为进程是一个程序的一次执行过程。进程通信的概念进程用户空间是相互独立的,一般而言是不能相互访问的。但很多情况下进程间需要互相通信,来完成系统的某项功能。进程通过与内核及其它进程之间的互相通信来协调它们的行为。进程通信的应用场景数据传输:一个进程需要将它的数据

2016-10-30 17:05:43 15065

原创 EventBus的使用

分享者:蔡永强 分享日期:2016年10月24号EventBus概要-EventBus是针对Android在发布和订阅消息的优化解决方案。为什么要使用EventBus简化了组件之间的通信使你的代码更加简洁小而美(快,且只有50k左右)EventBus简单使用将EventBus引进你的项目中Gradle: compile 'org.greenrobot:eventbus:3.0.0

2016-10-24 11:30:31 347

原创 Http协议简单介绍

分享者:蔡永强 分享日期:2016年10月15号http协议简介—————————————————————————————————–超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。版本历史超文本传输协议已经演化出了很多版本,它们中的大部分都是向下兼容的。客户端在请求的开始告诉服务器它采用的协议版本号,而后者则在响应中采用

2016-10-15 23:53:08 1369

原创 Android适配底部返回键等虚拟键盘的完美解决方案

这个问题来来回回困扰了我很久,一直没能妥善解决。场景1:华为手机遮挡了屏幕底部。场景2:进入应用时,虚拟键自动缩回,留下空白区域。需求:需要安卓能自适应底部虚拟按键,用户隐藏虚拟按键时应用要占满整个屏幕,当用户启用虚拟键时,应用能往上收缩,等于是被底部虚拟按键顶上来。需求很简单,实现起来却困难重重。完美解决方案:解释一下下面的代码,就是监听某个视图的变

2016-09-06 18:34:55 46521 11

原创 如何让Android应用一直活着,确保占用系统资源。

首先要说的是这是一个比较流氓的办法,会被手机管家等软件检测到有一个后台服务在跑,会提示用户去清除。除非必要,不然还是考虑其他方法吧。应用场景: 没有退出App而是回到home或是进入到其它App后,系统自动回收了我App的资源,导致我再次回到我的App中时发现必须重新启动,而需求是不想每次都重新启动,需要能立即恢复到原来的状态。解决方案1:数据持久化,每次退出时保护现场,将需要的数据保存到本地,等

2016-09-06 18:01:08 1968

原创 Android中的各种样式的Dialog

http://blog.csdn.net/liang5630/article/details/44098899

2016-09-06 16:22:16 535

原创 Java中内置的观察者模式

JAVA有内置的观察者和被观察者,很好用,效率很高:转载于:http://www.cnblogs.com/mengdd/archive/2013/02/08/2909206.htmlObservable类   java.util.Observable  http://docs.oracle.com/javase/7/docs/api/java/util/Observable.html  Obser

2016-09-06 16:19:10 252

原创 Android中Toolbar的基本使用

Android的标题栏是很重要的一个模块,App是否易用很大一部分要看标题栏。写这个博客的时候刚发现谷歌推出了一种新的标题栏实现方式。 它相对于以前的ActionBar来说,最大的变化是开发者可以在标题栏上增加自定义的view。同时在最左端添加了一个导航按钮。将Activity的默认标题栏禁用。 这个实现有两中方式,代码控制和xml文件里配置 代码 如果是继承 AppCompatActi

2016-05-27 11:45:10 1077

转载 Monkey的基本命令

monkey命令能模拟点击屏幕,达到压力测试的目的。通过其参数可以控制具体如何测试。参数名 -p功能 参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。指定包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。参数名 -v功能 用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别:level0-2

2016-05-12 14:04:15 773

转载 Android代码混淆

1.编辑proguard-project.txt文件,可以确定哪些代码需要混淆,哪些代码不需要混淆。 a. 把所有你的jar包都申明进来,例如: -libraryjars libs/apns_1.0.6.jar -libraryjars libs/armeabi/libBaiduMapSDK_v2_3_1.so -libraryjars libs/armeabi/liblocSDK4

2016-05-12 13:37:32 312

原创 Android使用Monkey的自动化测试

执行条件:一部Android手机,一台电脑,一根USB。adb shell手机连上电脑 上面是按照达成由易到难排列的。 第一个不用废话。 第二个我是在windows系统下打开adb shell的。 打开方式是 cmd 进入小黑框(这个是windows shell )cd 到 SDK的platform-tools目录下(c盘要到d盘,直接输入命令 D:)//到platform-to

2016-05-11 17:02:54 629

原创 RadioGroup,Android的单选框。

在安卓上,实现单选框。 先看一下需求:在用户注册页面需要填性别项,大家知道性别不是男的便是女的。(这里不考虑其它情况)这时候单选框就派上用场了,先看布局文件。<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" andro

2016-05-10 15:36:26 761

原创 单独编译Android源码的模块。

如果你修改了android的源码,你需要重新编译,才能使修改的代码生效,这时你不需要使用make重新编译全部代码。你可以单独的对你编译的那个模块进行编译。USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh 这个命令是为了添加一些命令 如下面的mmm,这个命令表示对指定的路径进行编译。 mm表示对当前目录下进行编译,前提是当前路径下

2016-04-24 00:07:11 1490

原创 自定义一个圆圈View

这篇博客的目的是如何开发一个继承自View的自定义控件。最后的效果是能够得到一个任何页面都能使用的圆圈控件。代码很简单,也很粗陋。但是高楼平地起。 先贴代码,可以先不看,看完后面的解释再看代码:package com.example.administrator.myfirstandroidstudioproject.customView;import android.content.Context

2016-04-14 16:37:42 465

原创 编译Android源码和内核源码的归纳总结

经过一个多星期的努力,终于在零基础的情况下使用ubuntu-12.04-desktop-amd64(64位Ubuntu系统)成功编译了android-4.0.3的源码和Linux version 2.6.29的linux内核源码。期间遇到很多困难,好几次想放弃了,不过只要坚持并找到正确的方法,最后就一定能够成功。注意事项:在编译过程中,最需要注意的就是版本问题。uabntu的版本和源码的版本最好能

2016-04-14 14:06:54 3602

转载 Android Studio常用快捷键、Android Studio快捷键大全

转载自:http://blog.sina.com.cn/s/blog_9ac333de0102vsxf.html Alt+回车 导入包,自动修正Crtl+X 剪贴 删除本行 ,之前用Eclipse Ctrl+D 就是删除,在AndroidStudio 中是复制本行到下一行Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Al

2016-04-13 17:45:03 406

原创 单例模式详解

一直以为自己对单例模式很了解,仔细研究才发现以前忽略了单例模式的很多难点。其中有如何保证在多线程中的单例模式。如何保证反序列化时的单例模式(因为反序列化时会创建一个新的实例)。定义:在整个程序中,保证某个类只有一个实例化的对象,并自行对外提供这个实例。 使用场景:在定义中说的很清楚了,只要一个实例的时候。比如IO读写时,数据库操作时。多个对象的话就很有可能造成并发读写的操作,也增加了不必要的资源消

2016-04-13 00:14:23 378

原创 对面向对象编程的6个基本原则的理解

单一职责原则 定义:一个类中应该是一组相关性很高的函数,数据的封装。 做法:根据对业务和需求的理解,去划分一个类,一个函数的职责。 举例:比如要实现一个加载图片的功能,并在加载图片的时候实现对图片的缓存。这时候至少应该需要两个类去完成这个功能。一个是加载和显示图片的类Imageloader。一个是缓存类ImageCache。如果将两个类写在一起,会导致代码的可读性,灵活性,和扩展性变...

2016-04-12 00:30:26 2845

原创 自定义控件的实现

如何自定义一个控件呢。现在我们有这么一个需求需要实现三个view叠在一起,你大概会说很简单,使用RelativeLayout,设置他们的相对位置就可以了。确实,这样可以实现,但却不够优雅。如果这个控件是一直都这样不需要改变,并且只在一个地方使用,无疑使用RelativeLayout是最方便省事的。然而,现在需求希望能够动态的改变每个view离上个view的相对位置,并且这个控件在多个地方都需要使用到

2015-12-17 16:28:55 419

原创 githup中shell命令的常见错误

将本地的代码与网上创建的仓库(以下统称远程仓库)建立连接报错当执行git remote add origin 远程仓库的hhtp地址出现如下错误时 提示出错信息:fatal: remote origin already exists. 解决办法如下: 1、先输入git remote rm origin 2、再输入$ git remote add 远程仓库的hhtp地

2015-12-15 23:30:50 627

原创 githup的常用命令

githup的常用命令

2015-12-14 16:50:50 2313

原创 Volley详解

概念和应用场景:Volley的英文意思是齐射,并发的意思,见文知意,就是专门用来处理大量一起发出的网络请求的框架。当然Volley也有自己的缺点,就是不适合用来做上传下载的网络请求。至于为啥,我也不知道。 第一步.创建一个Volley网络请求。 因为要处理多个同时发生的网络请求,为了方便控制这些请求的查找和取消操作。我们需要先创建一个Volley队列,然后再往这个队列里add请求,请求就能自己执

2015-12-14 14:14:56 414

转载 Android Service 服务(三)—— bindService与remoteService

12月12日北京OSC源创会 —— 开源技术的年终盛典 »  一、bindService简介bindService是绑定Service服务,执行service服务中的逻辑流程。service通过Context.startService()方法开始,通过Context.stopService()方法停止;也可以通过Service.stopSelf()方法或者Ser

2015-11-13 16:57:35 426

原创 自定义属性

当我们需要实现一些特定的布局显示的时候,我们需要自定义一个控件。自定义控件一般都是继承某种View,然后在里面实现onMesure方法和onLayout方法。 当我们使用自定义控件的时候,我们很希望这个控件能像安卓内部的其它控件一样可以通过在布局文件中写好属性,就能控制着个控件,例如android:layout_width="match_parent"这样这个控件的宽度就会和它的父View一样大小

2015-11-03 13:18:18 368

转载 ActionBarSherlock使用教程(转)

转自:http://www.chenwg.com/android/actionbarsherlock%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B.html Android3.0开始就提供了ActionBar,这让Android的用户体验强了好多,但是这个ActionBar在Android3.0以下是不支持的,谷歌也没推出什么解决方案,不过呢,没有什么是实现不了的,有gi

2015-10-27 14:34:01 692

原创 高效的加载图片2.通过子线程(AsyncTask)加载图片

上一篇我们说到如何以较小的内存,打开较大的图片中使用了 BitmapFactory.decodeResource(res, resId, options);我们再主线程中执行了该方法,测试显示没有任何问题。我们的图片资源是来自本地的文件,可是,如果我们的图片来自sd卡甚至是来自网络的资源,再在UI线程中使用该方法,那么是很容易引起线程阻塞,导致ANR异常的(Application Not Resp

2015-10-10 13:40:45 800

原创 高效的加载图片1.缩放大容量的Bitmap

我们通过眼睛来观察世界,眼睛通过光的反射,折射将世间的万物映射到我们的眼睛里。至于是在眼睛里生成图片传递给大脑,还是眼睛将映射得来的信息传递给大脑,然后大脑再生成图片,我们就不深究了。总之我们通过这些图片,了解了世界。图片何其重要,几乎每一个app都需要加载图片,然而并不是每一个app都很好的加载了图片。图片是什么,我们先说一下图片的属性:形状,大小,颜色。这一节里我们讨论的是图片最简单的属性

2015-10-10 13:08:38 375

原创 向ContentProvider中添加媒体文件

先说一下为何要将媒体文件添加到ContentProvider中,不是将如视频,MP3这样的文件通过输入输出流写入到手机的外部存储器中就表示保存好了数据了吗?确实,这样保存了,并且我们也能通过文件管理器来找到这些视频音频了。可是,我们想要使用这些媒体文件必须要知道这些文件的保存路径,而其它应用程序是不会知道你保存的路径的。你只有把这些媒体文件的内容添加到系统自带的一个媒体的内容提供者中,其他应用程序才

2015-10-09 10:35:52 1085 1

原创 关于意见反馈

每个app都会带有意见反馈,得到用户的反馈并得到改善是一件很重要的事情,一个成功的产品肯定是让用户满意的产品。 然而获取app意见反馈我们应该尽可能的获取用户在使用app时的信息,这个信息包括用户使用的手机的版本,用户的地址,运行的设备,使用的语言。这些信息可以帮助我们更好的理解用户的反馈,以便对症下药。 当然,还有一点需要注意,在发送这些消息时,必须确保用户知道的情况下发送这些消息。

2015-10-08 17:12:37 578

原创 同时发起多个intent

做设置头像时有这么一种需求,当点击一个按钮时,需要让用户选择是拍照获取照片,还是在图库中选择获取照片。要满足上述需求,有两种解决方案,一种是创建一个选择dialog,这个会比较保险,可以自己定义dialog的样式,也可以很好的控制dialog里面的内容。但是会比较麻烦一点。具体代码如下。 /** * 显示修改头像的对话框 */ private void getPh

2015-10-08 16:20:00 1706

原创 Java如何保留两位小数

在做断点下载的时候碰到一个小问题,在显示下载进度的时候我想让它显示总共有多少M,和已经下载了多少M。但是我又想让它保留两位小数。于是我用到了DecimalFormal这个类。 顾名思义,这是一个控制小数格式的类用法如下。 float num = progressBar.getProgress();//已经下载了的字节数大小 float total= progres

2015-10-08 11:32:47 951

转载 ERROR: In <declare-styleable> MenuView, unable to find attribute android:preserveIconSpacing

ERROR: In MenuView, unable to find attribute android:preserveIconSpacing 分类: 安卓eclispe开发2015-07-06 17:57 561人阅读 评论(0) 收藏 举报 eclipse sdk从低版本切换到高版本sdk的时候 v7包会包这个错ERROR: In MenuView, unable to f

2015-09-24 14:53:02 568

Win7中出错:无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-|1-1-0.dll

包含win7 32 位和win7 64位,安装完成后重启电脑,亲测有效

2017-10-16

空空如也

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

TA关注的人

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