
安卓开发
crazycat喵
这个作者很懒,什么都没留下…
展开
-
Advanced Android TextView
https://github.com/chiuki/advanced-textview 今日通过一个开源库来分析textview的一些其他玩法。。 getCompoundDrawables方法可以获取这4个位置的图片。然后就可以在文字周围加drawable动画和动画集合等等(animated-rotate和animation-list)。假如要用animated-vector还要另外新建...原创 2018-04-23 17:28:39 · 502 阅读 · 0 评论 -
推荐android网站
技术小黑屋http://droidyue.com/ 胡凯http://hukai.me/ 张奇(好像公众号更多东西)http://stormzhang.com/posts/ 下载as的网站https://developer.android.com/studio/index.html 官方下载ashttp://tools.android.com/download/studio/canary原创 2016-06-22 12:02:34 · 878 阅读 · 0 评论 -
广播接受者的一点理解
1,动态注册是依附activity的,当解绑的时候就销毁了,这个页面自然不能接受广播了。 2,静态注册就无敌了,只要注册了,就无法销毁了,伴随整个app的总结 但是他们都不能进行耗时操作,超过10秒就ANR. 我们广播接受者的onreceive处理不同的action是根据我们的过滤器决定的,不同过滤器处理不同操作的话,就要判断他的action来自哪里。找出sendbroadcast方法,我们就原创 2016-07-05 21:13:21 · 445 阅读 · 0 评论 -
MD整理笔记(1)
MD出来很久了,但是受制于5.0才能使用,所以还没普及,大家可能还要为了兼容低版本烦恼不已。相信不远将来会越来越流行。1.为了能使用 这些 material design 组件,你需要去更新最新的SDK中的Extras支持库,然后compile ‘com.android.support:design:23.2.1’2.底部动作条(Bottom Sheets)特别适合有三个或者三个以上的操作需要提供给原创 2016-06-16 14:50:46 · 2057 阅读 · 0 评论 -
Android子线程中更新UI的3种方法
转载http://gqdy365.iteye.com/blog/2112471 在Android项目中经常有碰到这样的问题,在子线程中完成耗时操作之后要更新UI,下面就自己经历的一些项目总结一下更新的方法: 在看方法之前看一下Android中消息机制: 引用Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。 H转载 2016-07-11 10:37:44 · 796 阅读 · 0 评论 -
(转)Android 内存泄漏案例和解析
转载自drakeet,很有用,大家移步参观https://drakeet.me/android-leaksAndroid 编程所使用的 Java 是一门使用垃圾收集器(GC, garbage collection)来自动管理内存的语言,它使得我们不再需要手动调用代码来进行内存回收。那么它是如何判断的呢?简单说,如果一个对象,从它的根节点开始不可达的话,那么这个对象就是没有引用的了,是会被垃圾收集器回转载 2016-05-06 23:30:19 · 453 阅读 · 0 评论 -
Android XML数据解析
转载http://blog.youkuaiyun.com/coder_pig/article/details/48292279 1.XML数据要点介绍首先我们来看看XML数据的一些要求以及概念: 2.三种解析XML方法的比较转载 2016-05-25 22:50:20 · 344 阅读 · 0 评论 -
IntentService源码分析
1.IntentService用来干什么?一般情况下,service是在主线程中运行的,这样如果处理耗时操作会造成ANR的问题,但是很多场景下我们需要用service进行耗时操作,此时就需要一种新的机制,于是便引进了IntentService的概念。 先看一下官方的说法吧IntentService is a base class for Services that handle asynchron转载 2016-05-25 14:11:36 · 397 阅读 · 0 评论 -
service整理笔记
转载http://blog.youkuaiyun.com/guolin_blog/article/details/11952435Service的基本用法项目中的每一个Service都必须在AndroidManifest.xml中注册才行由于onCreate()方法只会在Service第一次被创建的时候调用,如果当前Service已经被创建过了,不管怎样调用startService()方法,onCreate()转载 2016-08-04 13:12:15 · 451 阅读 · 0 评论 -
service的理解
1.service的startSerive(前提serive属于四大组件必须在清单文件注册)启动了onCreate(),onStartCommand(),但无论start多少次,onCreate只会初始化一次,后面startSerive只会重复调用onStartCommand。 bindService(intent, serviceConnection, Service.BIND_AUTO_CRE...原创 2018-03-09 10:29:27 · 640 阅读 · 0 评论 -
如何判断app在前台还是后台
app位于前台后台原创 2017-01-05 15:25:55 · 1542 阅读 · 0 评论 -
Android内存泄漏分析心得
转载QQ空间团队 http://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw==&mid=2649796884&idx=1&sn=92b4e344060362128e4a86d6132c3736&chksm=f1fcc54cc68b4c5add08371265320163381ea81333daea5664b94e9a12246a34cfaa31e6f0b3&mp转载 2016-11-17 11:47:55 · 1226 阅读 · 0 评论 -
手机不打印日志和Logger日志库的使用
魅族手机默认是不开启打印高级日志的。所以有时候你使用一些自定义的log库看不到输出日志。打开方式:设置——辅助功能——开发者选项(假如你看不到开发者选项再想办法)——高级日志输出–点击允许全部华为手机也是不允许打印日志的这个很奇葩。在这里可以看到原答案http://blog.youkuaiyun.com/msn465780/article/details/46117945 拨号键盘输入##2846579#原创 2016-10-31 17:33:33 · 5065 阅读 · 0 评论 -
Android防止键盘弹出后顶起布局和弹窗消失后输入法没有收回
有人这样做: 在界面中点击文本输入框,键盘弹出后有时会将界面中的布局顶起。为避免该情况,可在onCreate()方法中加入以下代码: getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 其实在清单文件对应的actvityandroid:windowSoftInputMode=”state原创 2016-10-28 16:00:37 · 3073 阅读 · 0 评论 -
华为手机和谷歌原生系统虚拟按键遮挡布局问题
很多情况下,例如华为手机和谷歌原生系统只有虚拟按键,这时候假如你们做了特殊处理我们可以将布局绘制到navigationBar里面。当然为了避免这种情况,我们应该讲所有的绘图到在navigationBar上面。<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:原创 2016-10-18 11:03:58 · 4982 阅读 · 0 评论 -
Listview实现简单的单选功能
1,需求就是点击列表的其中任意一项,显示图片,重复点击图片依然显示,其他不选中不显示图片2.一开始看网上都是用radiobutton来实现单选功能,发现滚动的时候被回收了,并不能记住图片的显示3.最后参考了网上的做法,自定义一个getview里面的item项首先,listview的xml文件 <ListView android:id="@+id/listview"原创 2016-11-07 00:10:36 · 1483 阅读 · 0 评论 -
点击一键切换让文本从不可以编辑到编辑状态
1.有时候我们app中经常出现一些需求,点击右上角的按钮“编辑”就会变成“完成”,文本里面的EditText从不可以编辑输入到可编辑输入 2.很简单直接上布局 <RelativeLayout android:id="@+id/parttime_type" android:layout_width="match_parent" android:la原创 2016-04-17 14:07:52 · 2545 阅读 · 3 评论 -
让ScrollView自动滚到顶部
reboundSrcview.postDelayed(new Runnable() { @Override public void run() { reboundSrcview.scrollTo(0, 0); } }, 0);reboundSrcview是ScrollView控件,f原创 2016-04-15 18:08:29 · 1047 阅读 · 0 评论 -
Fragments之间的交互
转载为了重用Fragment UI组件,我们应该把每一个fragment都构建成完全的自包含的、模块化的组件,定义他们自己的布局与行为。定义好这些模块化的Fragment后,就可以让他们关联activity,使他们与application的逻辑结合起来,实现全局的复合的UI。通常fragment之间可能会需要交互,比如基于用户事件改变fragment的内容。所有fragment之间的交互需要通过转载 2016-03-06 22:28:27 · 344 阅读 · 0 评论 -
Fragment
为了执行fragment的增加或者移除操作,必须通过 FragmentManager 创建一个FragmentTransaction对象, FragmentTransaction提供了用来增加、移除、替换以及其它一些操作的APIs。如果我们的activity允许fragment移除或者替换,我们应该在activity的onCreate()方法中添加初始化fragment(s).运用fragmen转载 2016-03-06 22:05:38 · 357 阅读 · 0 评论 -
TextView 上下默认有留白
我的Textview的高度比设计师给的多,发现textView默认会给加上下padding,就是所谓的留白<TextView android:id="@+id/tv_account" android:layout_width="wrap_content" android:layout_height="wr原创 2016-03-16 20:08:10 · 5823 阅读 · 0 评论 -
Context的前世今生
转载郭霖 下面我们来看一下Context的继承结构 Context的继承结构还是稍微有点复杂的,可以看到,直系子类有两个,一个是ContextWrapper,一个是ContextImpl。那么从名字上就可以看出,ContextWrapper是上下文功能的封装类,而ContextImpl则是上下文功能的实现类。而ContextWrapper又有三个直接的子类,ContextThemeWrapper、转载 2016-03-01 22:30:14 · 506 阅读 · 0 评论 -
一、Android编码规范
出处 1.java代码中不出现中文,最多注释中可以出现中文 2.局部变量命名、静态成员变量命名 只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写3.常量命名 只能包含字母和,字母全部大写,单词之间用隔开4.layout中的id命名 命名模式为:view缩写_模块名称_view的逻辑名称view的缩写详情如下LayoutView:lvRelativeView:rvTextVie转载 2016-02-12 18:10:47 · 451 阅读 · 0 评论 -
安卓的四种启动形式
有参考 http://blog.youkuaiyun.com/guolin_blog/article/details/41087993首先理解activity任务是一个Activity的集合,它使用栈的方式来管理其中的Activity,这个栈又被称为返回栈(back stack),栈中Activity的顺序就是按照它们被打开的顺序依次存放的。 手机的Home界面是大多数任务开始的地方,当用户在Home原创 2016-03-01 18:05:37 · 950 阅读 · 0 评论 -
Android相机开发那些坑
最近我负责开发了一个跟Android相机有关的需求,新功能允许用户使用手机摄像头,快速拍摄特定尺寸(1:1或3:4)的照片,并支持在拍摄出的照片上做贴纸相关的操作。由于之前没有接触过Android相机开发,所以在整个开发过程中踩了不少坑,费了不少时间和精力。这篇文章总结了Android相机开发的相关知识、流程,以及容易遇到的坑,希望能帮助今后可能会接触Android相机开发的朋友快速上手,节省时间,转载 2016-02-12 14:35:00 · 1381 阅读 · 0 评论 -
TextView划线 android
/** * 下划线 * * @param textView */ private void addButtomLine(TextView textView) { textView.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); } /** * 移除线 * * @param textView */转载 2016-03-08 12:03:16 · 507 阅读 · 0 评论 -
AS和Eclipse的快捷键
序号 功能 Eclipse快捷键 Android Studio快捷键 n 快速修复(实现接口方法、强制类型转换、导包) Ctrl + 1 Alt + Enter n 删除光标所在行(选中行) Ctrl + D Ctrl + Y Ctrl + X n 复制光标所在的行(选中行) Ctrl + Alt + Up/Down Ctrl + D n原创 2016-03-08 16:50:21 · 3202 阅读 · 1 评论 -
底部按钮中间突出
转载<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" an转载 2016-03-08 09:44:38 · 1233 阅读 · 0 评论 -
如何设置android状态栏的透明度
今天设置状态栏透明度遇到BugCrash——TaskDescription's primary color should be opaque去谷歌了一下就是不能再v21下面设置它状态栏的透明度只能老老实写#00000; 但是我是一个不肯轻易放弃的人。 一个强大的库应运而生SystemBarTintManager 有需要的同学去github搜索一下 在基类里面BaseActivity假如这行就原创 2016-04-05 16:10:00 · 4149 阅读 · 0 评论 -
广播接收者(2)
参考郭霖的书发送自定义广播在发广播之前,我们先定义一个广播接收器来接收此广播才行。因此,新建一个类:MyBroadcastReceiver,让他继承BroadcastReceiver,代码如下:public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(C原创 2016-03-09 21:58:47 · 374 阅读 · 0 评论 -
广播接收器的使用(1)
注册广播的方式一般有两种,在代 码中注册和在AndroidManifest.xml 中注册,其中前者也被称为动态注册,后者也被称为静态注册。 那么该如何创建一个广播接收器呢?其实只需要新建一个类,让它继承自BroadcastReceiver,并重写父类的onReceive()方法就行了。这样当有广播到来时,onReceive()方法就会得到执行,具体的逻辑就可以在这个方法中处理。原创 2016-03-09 21:32:42 · 1297 阅读 · 0 评论 -
DialogFragment 创建对话框
因为自己之前一直重写dialog,布局随意改,确定弹窗那些真的很烂设计,今天看到一篇好文章。 转载鸿洋:http://blog.youkuaiyun.com/lmj623565791/article/details/37815413 1、 概述 DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示转载 2016-03-09 14:10:10 · 584 阅读 · 0 评论