自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

姚瑶大坏蛋的专栏

Android学习

  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 文章标题

Android开发中使用Gradle管理Release/Debug版本中的各种key我们在开发中,如果使用高德地图、各种统计等第三方SDK时,一般都有两个key值,来区分是测试还是正式版本。一般都是写到AndroidManifest.xml中,在每次切换版本的时候手动去改。为了方便,我们可以使用Gradle,将key值写到build.gradle中,在AndroidManifest.xml中应用这个

2016-06-02 11:54:53 393

原创 Android6.0权限管理

Android6.0权限管理Android6.0棉花糖发布也快一年了,一直没有时间去做相应的权限处理,最近有点时间,系统的研究了一下,并在自己的app中增加了权限管理。(虽然老大觉得然并卵) 从此app再也不能在安装时,就获取想要的权限了,系统安全更进一步,这个绝对是个喜讯啊~~~ 虽然这样会给开发增加很多工作量,但是作为一个有节操、有理想的程序员,我们是要鼎力配合的普通权限—不需做特殊处理An

2016-05-20 16:10:38 811

原创 CSDN 中用markdown语言写流程图

具体写法:Created with Raphaël 2.1.0开始 步骤1 步骤2步骤3结束

2016-05-17 13:51:19 415

原创 Android drawable中的一些细节

Android drawable中的一些细节Android stuio新建的project里,res下多出来的mipmap,和drawable类似的文件夹,作用是啥呢?其实就是用来存放icon的。 具体大小规则如下: 密度 大小 mipmap-mdpi 48*48 mipmap-hdpi 72*72 mipmap-xhdpi 96*96 mipmap-xxhdpi

2016-04-28 11:46:29 430 1

原创 集成融云Android SDK实现在群聊/讨论组中@人的功能(三)

最后一段,一些注意事项写到这基本功能已经实现了,但是还是有些细节问题要处理1.输入框调起成员列表,在聊天页面写入这个方法(我的聊天页面是ChatActivity)InputProvider.MainInputProvider provider = RongContext.getInstance().getPrimaryInputProvider(); if (provider ins

2016-04-26 18:22:54 1238 2

原创 集成融云Android SDK实现在群聊/讨论组中@人的功能(二)

接着上面写2.写了单独service来处理@相关数据public class AtUserService { private static AtUserService instance; private static final String AT_GTOUP_IDS="at_group_ids"; public static AtUserService getInstanc

2016-04-26 17:57:10 1678

原创 集成融云Android SDK实现在群聊/讨论组中@人的功能(一)

集成融云Android SDK实现在群聊/讨论组中@人的功能可以确定的是融云SDK本身不提供@的功能,需要自定义实现。 在实现这个功能时,基本模仿微信的做法: - 在列表中显示有人@了你 - 通知显示有人@了你 - 群聊中输入框输入@时弹出群成员列表,选择要@的人 - 键盘回删的时候,不可以弹出成员列表 - 这消息未读时,有人@了你一直在列表中显示,包括程序杀死的情况 - 长按头像实现

2016-04-26 17:42:40 3336

原创 Android studio 各种快捷键,使用技巧

记录一个Android studio 各种快捷键,使用技巧:http://laobie.github.io/android/2016/02/14/android-studio-tips.html

2016-02-18 10:49:58 328

原创 Android 消息机制---Handler,Looper,MessageQueue,ThreadLocal

Android的消息机制主要是指Handler的运行机制,Handler的运行依赖于Looper(消息选好)和MessageQueue(消息队列)。MessageQueue是以队列的形式,提供插入和删除,但是它的内部结构不是真正的队列,而是采用单链表的数据结构来存储消息列表。MessageQueue只是一个消息的存储单元,它不能处理消息,Looper就是用来处理消息的。Looper会以无限

2016-01-22 15:59:05 563

原创 Android LayoutParams 用法

在开发中经常会遇到需要在代码中动态设置控件高度、位置等,这时就要用到LayoutParams。没弄明白的时候,在开发时经常遇到类似错误: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutP

2016-01-21 17:36:56 844 1

原创 android设置软件按钮为“搜索”,并监听事件

首先是在xml中editetext里添加android:imeOptions="actionSearch",这样当输入框中有内容时,软键盘右下角就会变成“搜索”。在Activity中设置监听:方法一:txtSearch.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Overrid

2016-01-15 17:45:37 1450

原创 LeakCanary: 查找内存泄露

什么是内存泄露一些对象有着有限的生命周期。当这些对象所要做的事情完成了,我们希望他们会被回收掉。但是如果有一系列对这个对象的引用,那么在我们期待这个对象生命周期结束的时候被收回的时候,它是不会被回收的。它还会占用内存,这就造成了内存泄露。持续累加,内存很快被耗尽。比如,当 Activity.onDestroy 被调用之后,activity 以及它涉及到的 view 和相关的 b

2015-12-22 18:04:38 479

原创 Java 创建字符串String的各种方法以及区别

Java中创建字符串的方法:1.单独使用“”引号创建的字符串都是常量,编译期就已经确定存储到String Pool中;2.使用new String(“”)创建的对象会存储在heap中,是运行期新创建的;3.使用只包含常量的字符串连接“abc”+"def"创建的也是常量,编译期就能确定,存储到String Pool中;4.使用包含变量的字符串连接“abc”+str1创建的对象是运行期

2015-12-21 15:37:18 2621

原创 Android的ViewStub理解与用法

ViewStub是一个不可见的,大小为0的View。最大的用途就是实现View的延迟加载,在需要使用的时候再加载view。 xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"

2015-12-21 11:59:57 897

原创 FragmentTransaction add和replace方法的区别

在项目中进行Fragment切换的时候,可以用replaced()方法来切换,也可用用add()。使用replace()切换的话,Fragment都会重新实例化,重新加载数据,这样产生了一些没必要的消耗。官方说明:replace()方法,只是在上一Fragment不再使用时才调用。如果上一个Fragment还需要使用的话,应该使用add()方法切换。

2015-12-17 15:42:17 1943 2

原创 mac上学习使用GitLab(一)

1.mac上自带ssh首先在命令行输入:ssh -v 如果出现usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]           [-D [bind_address:]port] [-E log_file] [-e escape_char]           [-

2015-12-08 13:42:57 3582

原创 Java 内部类中使用局部变量必须是final

在java中, 方法的内部类可以访问方法中的局部变量,但必须用final修饰才能访问。原因:1.当方法被调用运行完毕之后,局部变量就已消亡了。但内部类对象可能还存在, 直到没有被引用时才会消亡。此时就会出现一种情况,就是内部类要访问一个不存在的局部变量。                         2.解决这一问题的办法就是使用final修饰局部变量,通过将fina

2015-11-30 13:57:52 3218 1

原创 一个Android开发的心路历程

回想起来,自己2011年大学毕业,来北京读研究生,那时候去找Android实习生的岗位,结果面试管问我“这个页面有几个Activity”,我居然回答有3个,那时候真的是连什么是Activity都不知道,就这样面试官居然还面了我一个多小时。我现在想想,要是我是面试官,碰上这么水的学生,面五分钟就够了。当然,人家也没要我,要了就见鬼了。后来就想,我这样不行,技术太差,找不到实习工作,就想要好好

2015-08-28 15:48:55 791 2

原创 Android SnackBar 使用的问题: Error inflating class android.support.design.widget.Snackbar$SnackbarLayout

不知道大家刚开始用snackbar的时候是否遇到问题,我最开始写的时候就是在普通的activity中写了snackbar,结果就报了下面这个错误:Error inflating class android.support.design.widget.Snackbar$SnackbarLayout解决方案:首先,使用snackbar必须要使用compile 'com.an

2015-08-24 17:30:30 3154 4

原创 关于fragment的构造函数问题

今天在写一个viewpager demo的时候,想定义一个fragment的有参数的构造函数,发现报错了,于是就学习一下关于fragment的构造函数的问题。先列一下报的错:This fragment should provide a default constructor (a public constructor with no arguments) (com.exampl

2015-08-19 14:59:33 934 1

原创 Fragment 中嵌套Fragment,更新数据,UI

在做项目的时候,功能是Fragment中有一个viewpager,viewpager中每一个又都是一个Fragment,记为fragment1,fragment2,fragment3。这时fragment2中有一个功能,是点击里面的一个button,做一些操作,到返回时,要更新fragment2界面。关键:只需要更新fragment2查阅一些资料,最后的解决方案记录如下:

2015-07-28 15:08:14 2355 2

原创 Android scrollview中有EditText ,需要EditText 滑动时

EditText editText=(EditText)findViewById(R.id.editText);editText.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TOD

2015-07-22 10:08:05 650 1

转载 自定义开关,仿苹果的开关按钮

自定义开关view,仿苹果的开关/** * Created on 15/6/11. * 一个view从创建到显示要经历的过程 * 1:构造函数 实例初始化 * 2:测量 onMeasure * 3:如果当前view是ViewGroup 还要义务测量它孩子(子view) * 4:指定控件的大小和位置 (onLayout) * 如果当前view是ViewGroup 还要义务

2015-06-11 15:48:45 647

转载 Android自定义动态布局 — 多图片上传(记录一下,以后可能会用到)

Android自定义动态布局 — 多图片上传本文介绍Android中动态布局添加图片,多图片上传。项目中效果图:  技术点:1.动态添加格局中的线条和添加图片的+号2.多张图片异步上传首先来看一下布局文件:[html] view plaincopyprint?

2015-06-08 11:03:50 1014

转载 onTouchEvent与SetOnTouchListener的区别

代码1:public boolean dispatchTouchEvent(MotionEvent event) {        if (mOnTouchListener != null && mOnTouchListener.onTouch(this, event)) {            return true;        }        return

2015-06-05 16:33:54 1504 2

原创 从今天开始记录一下每天学到的Android知识、以及开发中遇到的问题

学习开发Android有3年了,也没记录过,从今天开始,有时间就记录一下吧。今天早上看到了一篇写优化使用ViewHolder的,感觉不错,记录一下public class ViewHolder {    @SuppressWarnings("unchecked")    public static T get(View view, int id) {

2015-06-05 09:44:20 641 1

《操作系统概念(第六版)》答案

《操作系统概念(第六版)》答案,是英文版的

2010-06-20

空空如也

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

TA关注的人

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