自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

俊光的专栏

记录学习的点点滴滴,认真总结,不断进步...

原创 Kotlin中常用操作符和用法介绍

Kotlin中出现的常用操作符和用法介绍?操作符表示这个对象可能为空//在变量类型后面加上问号,代表该变量是可空变量 var name: String? = "zhangsan" /** * 如果str不能转为Int类型,则返回null */fun parseInt(str: String): Int? { // (代码略)}b?.length //

2017-07-19 10:34:44 11215 4

原创 Kotlin入门基础笔记

自从Google将kotlin集成到AS后,kotlin就火起来了,我就跟上潮流大概看了下kotlin,觉得kotlin的语法有点乱,就没看下去了,也以为不会用到kotlin,谁知道最近的项目要用到kotlin,就只好乖乖再仔细学习一下,顺便记录一下kotlin的基础语法。 基本语法下面开始介绍Kotlin的基本语法定义包Kotlin和Java一样使用package组织代码,pa

2017-06-27 09:12:00 522

原创 Scrollbar样式介绍

今天突然需要修改RecyclerView的ScrollBar的样式,之前没有这方面的需求,网上查了查资料,记录下以便后面用到。参考资料:http://likfe.com/2016/05/16/diyScrollbar/知识点在ListView/ScrollView/RecyclerView中添加属性:<!-- 情况A :垂直滚动条-->android:scrollbars="vertical"a

2017-05-25 10:32:46 1974

原创 inflate方法两个参数和三个参数的区别

前言今天在lint项目的代码时,又遇到了inflate方法的参数问题,之前看过相关的文章,又没有记录下来,导致时间长了就忘记了。今天再次遇到这个问题,便老老实实记录一下LayouInflater中inflate方法两个参数和三个参数的区别。用法LayoutInflater.from(RecylerActivity.this).inflate(R.layout.my_text_view,viewGro

2017-05-08 16:14:58 5950 3

原创 UML中各种线的含义

从一个示例开始请看以下这个类图,类之间的关系是我们需要关注的:车的类图结构为它有两个继承类:小汽车和自行车;它们之间的关系为实现关系,使用带空心箭头的虚线表示; 小汽车为与SUV之间也是继承关系,它们之间的关系为泛化关系,使用带空心箭头的实线表示; 小汽车与发动机之间是组合关系,使用带实心箭头的实线表示; 学生与班级之间是聚合关系,使用带空心箭头的实线表示; 学生与身份证之间

2017-04-09 21:02:39 3089

原创 了解了解RxBus

1.前言今天在网上突然看到说EventBus已经过时了,现在基本上没有人用了,都在有RxBus。看到这,吓了我一跳(心里万只草泥马狂奔,前一阵子才刚刚学完EventBus,现在竟然告诉lz过时了不用了!!!)但是作为一个有强烈求知欲的猿,我马上开始搜索了下RxBus并开始学习,于是有了这一篇文章。2.简介RxBus并不是一个库,而是一种模式(刚开始时以为有统一的标准,后来才发现不是绝对的,只是通过R

2017-03-31 22:36:51 374

原创 添加、删除桌面快捷图标

使用下面的方法即可添加桌面快捷图标// 创建快捷方式 private void installShortcut() { boolean isCreated = PrefUtils.getBoolean("is_shortcut_created", false, this); if (!isCreated) {

2017-03-27 14:15:39 1623 1

原创 Retrofit2.0的简单使用

1.简介retrofit是由square公司开发的,retrofit是REST安卓客户端请求库。使用retrofit可以进行GET,POST,PUT,DELETE等请求方式。 官网参考:http://square.github.io/retrofit/2.使用在gradle中添加依赖compile 'com.squareup.retrofit2:retrofit:2.

2017-03-21 21:48:42 451

原创 xUtils3的简单使用

1.xUtils3简介xUtils3 是 xUtils 的升级版,功能和性能都在提高, xUtils3 主要有四大模块:注解模块,联网模块,图片加载模块,数据库模块;注解模块: 用于在 Activity 或者 Fragment 中初始化布局文件,便于代码更加简洁;联网模块: xUtils3 支持超大文件(超过 2G)上传,更全面的 http请求协议支持(11种谓词), 拥有更加灵活的 ORM,

2017-03-15 21:38:11 720

原创 Android-Universal-Image-Loader的简单使用

1.特点1)多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等 2)支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置 3)支持图片的内存缓存,文件系统缓存或者SD卡缓存 4)支持图片下载过程的监听 5)根据控件(ImageView)的大小对Bitmap进行裁剪,减少Bitmap

2017-03-08 22:28:51 340

原创 View的事件分发机制

1.点击事件的传递规则点击事件的分发过程由3个方法完成,分别是:public boolean dispatchTouchEvent(MotionEvent event)public boolean onInterceptTouchEvent(MotionEvent event)public boolean onTouchEvent(MotionEvent event)pub

2017-03-04 09:58:45 360

原创 Android性能优化

1.布局优化1. 避免overdrawEnable GPU Overdraw Android系统在开发者选项中提供了这样一个工具“Enable GPU Overdraw”,通过这个工具可以查看当前区域中的绘制次数,从而尽量优化绘图层次,尽量增大蓝色区域,减少红色区域。2. 优化布局层级1)降低View树的高度2)尽量使用RelativeLayout代替Lin

2017-03-01 21:52:21 1753 1

原创 事件总线程之EventBus

1.简介EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。比如请求网络,等网络返回时通过Handler或Broadcast通知UI,两个Fragment之间需要通过Listener通信,这些需求都可以通过EventBus实现。 2.下载地址https://github.com/greenrobot/EventB

2017-02-22 22:49:39 444

原创 SurfaceView介绍

1.SurfaceView与View的区别View主要适用于主动更新的情况,而SurfaceView主要适用于被动更新,例如频繁刷新。View在主线程中对画面进行刷新,而SurfaceView通常会通过一个子线程对画面进行更新。View在绘图时没有使用双缓冲机制,而SurfaceView在底层实现机制中就已经实现了双缓冲机制。2.SurfaceView的使用创建SurfaceView,需要

2017-02-22 09:32:03 321

原创 PorterDuffXfermode属性介绍

PorterDuffXfermode设置的是两个图层交集区域的显示方式,dst是先画的图形,src是后画的图形。 PorterDuff.Mode为枚举类,一共有16个枚举值:1.PorterDuff.Mode.CLEAR 所绘制不会提交到画布上。2.PorterDuff.Mode.SRC 显示上层绘制图片3.PorterDuff.Mode.DST 显示下层绘制图片4.Porte

2017-02-21 14:02:02 246

原创 Android错误知识汇总

1.Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包) 解决方法:在gradle文件中改,只需要将重复的引用中的compile改成provided就行。 2.AS中运行项目时出现Error: Execution failed for task ‘:app:transformClas

2017-02-20 22:02:13 541

转载 在AndroidStudio中使用SVN

作者:夏海亮 链接:https://www.zhihu.com/question/32298079/answer/56010423 来源:知乎 著作权归作者所有,转载请联系作者获得授权。通过这两天对Android Studio的研究,终于搞通了Android Studio的基本操作及与SVN的相关关联操作(这样才能在公司的开发工作中使用);Google年底将会停止ADT插件的更新和支持,全面转

2017-01-02 12:10:41 1702

原创 一探ActionBar和ToolBar的区别

ActionBarActionBar是一个确定用户位置的窗口功能,并且能提供用户操作和导航的模块。使用ActionBar能够为用户提供一个熟悉的界面进行界面的切换,这个切换能够使系统更优雅是适应不同屏幕的配置。ActionBar提供以下几个重要的功能:提供一个专属的空间给你的应用,标志和显示用户在应用程序中的位置。在可预测的方法中,让重要的操作更加突出和易操作(例如搜索)。支

2016-12-30 10:22:11 7883

原创 RxAndroid 入门笔记

RxJava介绍RxJava 是轻量级的RxJava尽力做到非常轻巧。它仅关注Observable的抽象和与之相关的高层函数,实现为一个单独的JAR文件。RxJava 是一个多语言实现RxJava 支持Java 6或者更新的版本,以及其它的JVM语言如 Groovy, Clojure, JRuby, Kotlin 和 Scala。RxJava 可用于更多的语言环境,而不仅仅是J

2016-12-04 22:23:33 535

原创 Json、Gson的基本用法

什么是JSONJSON即JavaScript Object Natation, 它是一种轻量级的数据交换格式, 与XML一样, 是广泛被采用的客户端和服务端交互的解决方案.JSON对象:JSON中对象(Object)以”{“开始, 以”}”结束. 对象中的每一个item都是一个key-value对, 表现为”key:value”的形式, key-value对之间使用逗号分隔. 如:{“name”:”

2016-12-02 15:53:12 538

原创 RecycleView添加头部和底部

实现思路在Adapter中定义不同的布局和item状态判断item的状态,加载对应的布局文件实例代码在gradle中添加下面的依赖compile 'com.android.support:recyclerview-v7:23.1.0'compile 'com.android.support:cardview-v7:23.1.0'布局文件activity_main.xml<?xml versi

2016-11-24 15:46:25 2256 1

原创 Android资源文件中@和?含义、区别

@代表引用资源.1、引用自定义资源:比如说定义text 格式为“@string/name”2、引用系统资源:比如说设置文本颜色,就是"@android:color/darker_gray"其实也就是引用系统资源是引用自定义资源的一个子类.@*代表引用系统的非public资源.系统资源定义分为public和非publicpublic 的声明在SDK的文件夹里面,路径是platfroms/andr

2016-11-10 09:25:06 504

原创 Python入门基础(三)

Python 日期和时间Python程序能用很多方式处理日期和时间。转换日期格式是一个常见的例行琐事。Python有一个time and calendar模组可以帮忙。Tick时间间隔是以秒为单位的浮点小数。每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。Python附带的受欢迎的time模块下有很多函数可以转换常见日期格式。如函数time.time()用ticks计时单位返回

2016-11-10 09:01:19 234

原创 Python入门基础(二)

Python算术运算符除了比较常见的运算符外,还有以下的特别的运算符: 以下假设变量a为2,变量b为3: 运算符 描述 实例 ** 幂 - 返回x的y次幂 a**b 输出结果 8 // 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0Python成员运算符Python还支持成员运算符,测试实例中包含了一系列的成员,包括

2016-11-04 15:00:08 250

原创 Python入门基础(一)

python版本语法区别python2.7 print "Hello, Python!";python3.5print ("Hello, Python!");在Python 2里,print是一个语句。无论你想输出什么,只要将它们放在print关键字后边就可以。 在Python 3里,print()是一个函数。就像其他的函数一样,print()需要你将想要输出的东西作为参数传给它。 参

2016-11-04 10:52:17 625

原创 Android的JNI开发步骤

定义并调用本地方法 public static native String getStringFromC();创建jni文件夹jni文件夹里创建c文件#include <stdio.h>#include <stdlib.h>#include "com_gjg_hellondk_MainActivity.h"JNIEXPORT jstring JNICALL Java_com_gjg_h

2016-10-30 23:17:23 259

原创 在onCreate()方法中获得view的宽高

在onCreate()方法中获得view的宽高,用一般的方法,如下:img = (ImageView) findViewById(R.id.test_img);int width=img.getWidth();int height=img.getHeight();这时所获得的宽和高均为0,因为在onCreate方法时ImageView还没有绘制好,在这个时候获取得到的就是零。 那是否有办法在o

2016-07-25 10:44:07 2605 1

原创 高效加载图片,避免OOM

在项目中加载图片是基本不可避免的,但是有时候加载的图片不一定是你所需要的大小,这时我们就要对图片进行缩放,使之能适应给出的大小。图像的显示是很占用内存的,若加载的方式不正确就很容易导致OOM。加载图像的方式从网络上加载从资源文件中加载从文件中加载上面的三中方式分别对应的是BitmapFactory的decodeStream, decodeFile,decodeResource方法,这三个

2016-07-21 17:57:06 469

原创 AsyncTask的使用详解

AsyncTask介绍AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程. Android的AsyncTask比Handler更轻量级一些,适用于简单的异步处理。 首先明确Android之所以有Handler和AsyncTask,都是为了不阻

2016-07-20 23:31:38 478

原创 Android之使用RecyclerView异常情况

今天在使用RecyclerView时遇到了一些异常情况,记录下。 在布局中添加了RecyclerView,如下:<android.support.v7.widget.RecyclerView android:id="@+id/hlv_hour_forecast" android:layout_width="match_parent" android:

2016-07-14 11:05:21 3758

原创 Android之RecyclerView的使用总结

1.RecycleView的简介可以简单理解RecyclerView就是ListView,是一个更高级的ListView。2.RecyclerView的特点不关心Item显示在正确的位置,以及如何显示。不关心Item之间如何分割。不关注Item的添加和删除的效果。仅仅关注如何回收与复用View。3.在项目中如何引用在模块的gradle.build文件中添加如下依赖dependencies

2016-06-24 18:36:38 465

原创 Android中Selector的用法

Android中Selector的用法Android中的Selector主要是用来改变ListView和Button控件的默认背景。它分为两种,一种Color-Selector 和Drawable-Selector。属性介绍: android:state_selected选中android:state_focused获得焦点android:state_pressed点击android:state_

2016-06-15 14:25:51 4316

原创 Android中ShapeDrawable资源的用法

ShapeDrawable用于定义一个基本的几何图形(如矩形、圆形、线条等),定义ShapeDrawable的XML文件的根元素是 < shape…/>详细属性如下:solid:填充 android:color指定填充的颜色gradient:渐变 android:startColor和android:endColor分别为起始和结束颜色, android:angle是渐变角度,必须为45

2016-06-14 23:16:42 3157 1

原创 Android Studio编译中“png-cruncher_*”异常的解决方案

最近写的几个小demo在编译时总是出现错误,打印的log如下: …… …… Exception in thread “png-cruncher_21” java.lang.RuntimeException: Timed out while waiting for slave aapt process, make sure the aapt execute at D:\Android-SDK\A

2016-06-12 13:18:23 6460 1

原创 android-------使用Android应用调用Web Service

1、方法步骤今天研究了下使用Android应用调用Web Service,使用的第三方jar是:ksoap2-android。使用ksoap2-android调用Web Service的操作步骤如下:创建HttpTransportSE对象,该对象用于调用Web Service。创建SoapSerializationEnvelope对象。创建SoapObject对象,创建该对象时需要传入所要调用

2016-05-17 11:32:28 469

原创 android------addToBackStack无作用问题

今天写了一个关于Fragment的Demo,有一部分代码是这样的:@Override public void onClick(View v) { switch (v.getId()){ case R.id.button: AnotherRightFragment anotherRightFragment=new Anot

2016-05-12 11:53:31 2585 1

转载 Android自定义attr的各种坑

在开发Andorid应用程序中,经常会自定义View来实现各种各样炫酷的效果,在实现这吊炸天效果的同时,我们往往会定义很多attr属性,这样就可以在XML中配置我们想要的属性值,以下就是定义属性值可能遇到的各种坑。大家都知道怎么定义attr属性,一般如下:<declare-styleable name="Sample"> <attr name="custom" format="string

2016-05-07 10:41:00 4168

原创 Android Studio 自定义View命名空间报错的解决方法

在界面中引用自定义View时命名空间出现错误: 搜索了下,发现是AndroidStudio的gradle的脚本造成的,解析如下: 在eclipse中如果要使用你自定义的属性 是不能用res-auto的 必须得替换成你自定义view所属的包名,如果你在恰好使用的自定义属性被做成了lib 那就只能使用res-auto了,而在android-studio里,无论你是自己写自定义view 还是引用

2016-05-05 14:48:50 2987

原创 android--------关于创建模拟器不能移动的问题

创建模拟器后,模拟器一直显示在屏幕的左上角,不能移动,也显示不了“关闭”按钮,可以试一试以下的解决方案:按Alt+Space,在弹出菜单中选择Move,用方向键即可移动。删除,然后重新创建一个。把电脑的屏幕显示分辨率调低,保存后再次启动模拟器,启动成功后再把电脑的屏幕分辨率调回来即可。

2016-05-03 16:06:57 821

原创 android--------关于ActionBar的Overflow问题

1、一直显示Overflow在android 5.0之前的版本,是默认不显示overflow的(就是这个),若要显示overflow图标,可以用以下的方法:在values-v14(若没有,手动创建)中设置以下的样式:<resources> <!-- Base application theme. --> <style name="AppTheme" parent="android:

2016-05-03 15:48:51 581

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