Android基础
胖子luffy
代码界的小白
展开
-
App列表之分组ListView
吸引用户的眼球,是我们至死不渝的追求; 第一时间呈现最有价值的信息,简明大方,告诉客户,你的选择是多么的明智,这正是你寻觅已久的东西。 分组的应用场合还是很多的,有数据集合的地方往往要分组显示; 分组的形式也很多,最常见的就是镶嵌在列表中,网上说的很多ExpandListView的也是一种。 Android自带的通讯录中的联系人是按照拼音转载 2016-04-19 16:19:24 · 498 阅读 · 0 评论 -
谈谈事件分发
引言:这部分会分三个模块来讲,先讲View对Touch的处理,再讲ViewGroup的事件分发,最后讲如何解决滑动冲突。我习惯通过在源码中添加注释来理解源码,以下是我提取出来几个重要方法,将不重要的部分删掉,并且添加了中文注释。一、先从View讲起如果一个View(比如Button)接收到Touch,那么该Touch事件首先会传入到它的dispatchTouchEven转载 2016-07-11 15:46:37 · 1238 阅读 · 1 评论 -
avtivity中设置组合键进入相关的界面或者应用
avtivity中设置组合键进入相关的界面或者应用;假如有一个需求,按菜单键+上键进入管理员模式; private final int[] EVENT_KEYS = {KeyEvent.KEYCODE_MENU, KeyEvent.KEYCODE_DPAD_UP};//组合键 private ArrayList<Integer> inputKeysList = new ArrayLis原创 2016-07-15 13:57:11 · 450 阅读 · 0 评论 -
安卓-Handler引起的内存泄漏
摘要 内存泄露,听起来很屌的样子?看了这篇文章,你会发现其实这个概念很简单。Android程序经常出现的一个现象是:内存占用越来越大,到最后用户不得不强行关闭程序来释放内存。导致内存越来越大的原因很多,其中最主要的原因之一,就是Handler使用不当导致的内存泄露。 什么是内存泄露? Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为原创 2016-07-15 18:07:02 · 522 阅读 · 2 评论 -
安卓自定义属性attrs
1.在res/values目录下定义attrs.xml<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="CustomView"> <attr name="select_text_size" format="dimension" /> <attr name="is原创 2016-07-19 16:28:47 · 945 阅读 · 0 评论 -
Android 动画之ScaleAnimation应用详解
android中提供了4中动画: AlphaAnimation 透明度动画效果 ScaleAnimation 缩放动画效果 TranslateAnimation 位移动画效果 RotateAnimation 旋转动画效果 本节讲解ScaleAnimation 动画, ScaleAnimation(float fromX, float toX,转载 2016-07-19 18:24:47 · 4780 阅读 · 0 评论 -
Android Dialog 的一些特性
1. Dialog 与 AlertDialog 的区别。 AlertDialog 是一种特殊形式的 Dialog。这个类中,我们可以添加一个,两个或者三个按钮,可以设置标题。所以,当我们想使用 AlertDialog 默认的按钮形式,用 AlertDialog 更加方便,而且有一个类 AlertDialog.Builder 很方便创建一个 AlertDialog。 2.转载 2016-07-21 16:39:14 · 470 阅读 · 0 评论 -
Andorid MVP模式
Android MVP模式 \[1\] 也不是什么新鲜的东西了,我在自己的项目里也普遍地使用了这个设计模式。当项目越来越庞大、复杂,参与的研发人员越来越多的时候, MVP模式 的优势就充分显示出来了。导读:MVP模式是MVC模式在Android上的一种变体,要介绍MVP就得先介绍MVC。在MVC模式中,Activity应该是属于View这一层。而实质上,它既承担了View,同时也包含一些C转载 2016-08-08 09:49:12 · 997 阅读 · 0 评论 -
Android使用Builder模式自定义Dialog
首先说说为啥要自定义Dialog,在任何软件操作系统中,Dialog即对话框都是一种重要的交互模式与信息载体,而Android系统本身的Dialog拥有固定的样式,并且在5.0后采用Material Design设计风格的Dialog美观大气。但是我们开发人员在实际项目过程中遇到的需求是多种多样的,有时我们要匹配APP自己的设计风格,有时我们会觉得系统的对话框使用起来不够自由,因此自己定义一个适合转载 2016-08-15 14:33:13 · 5992 阅读 · 2 评论 -
自定义ContentProvider
一、引入:数据库在Android当中是私有的,不能将数据库设为WORLD_READABLE,每个数据库都只能创建它的包访问。这意味着只有创建这个数据库的应用程序才可访问它。也就是说不能跨越进程和包的边界,直接访问别的应用程序的数据库。那么如何在应用程序间交换数据呢? 如果需要在进程间传递数据,可以使用ContentProvider来实现。二、ContentProvider的功能和意义为了在应用程序之原创 2016-08-05 14:46:48 · 3476 阅读 · 0 评论 -
Android广播sendBroadcast(intent,receiverPermission)解析
偶然看到发送广播的一个方法里带着多个参数,而大部分网上教程讲解的都是只带一个参数(intent)的sendBroadcase( ),所以决定对这个带多个参数的方法研究一下,过程甚是艰辛。 第二个参数从名字上来看,似乎是某个权限。关于自定义权限的问题,请看我另一篇博文Android自定义权限怎样设置。 先从最简单的开始入手。 1、AndroidMan转载 2016-09-22 17:44:16 · 2449 阅读 · 0 评论 -
安卓广播大全
1) 待机: 广播消息:android.intent.action.SCREEN_OFF (代码) 2) 唤醒: 广播消息:android.intent.action.SCREEN_ON (代码) 3) 关机: 广播消息:android.intent.action.ACTION_SHUTDOWN (XML或代码) 4) 网络状态变化: 广播消息:android.net.conn.CO原创 2016-06-15 17:45:58 · 662 阅读 · 0 评论 -
获取接口调用者的包名
应用场景:一个service有对外开放的接口,在让外部app调用接口的时候需要获取调用者的包名,则可以以下方式获得,可以用于权限控制等 mContext.getPackageManager().getNameForUid(Binder.getCallingUid());如果是具有系统权限的app,返回值为android.uid.system:1000; 如果是普通app,返回值为包名原创 2016-12-21 17:24:44 · 6974 阅读 · 0 评论 -
android persistent属性研究
为什么写这篇文章呢?前段时间在研究telephony时,一直没有在framework下发现对telephony的初始化(PhoneFactory.java中的makeDefaultPhones函数)的调用。结果全局搜索之后发现在application PhoneApp(packages/apps/Phone)中调用了。但是application PhoneApp既没有被Broadcast唤醒,也没转载 2016-02-19 12:30:58 · 571 阅读 · 0 评论 -
Fragment详解之一——概述
今天开始给大家总结下有关Fragment使用方法的东东,内容比较多,这个系列可以要写的博客数量会多一点。一、为什么会有Fragment——设计理念Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上–例如平板电脑上,支持更加动态和灵活的UI设计。平板电脑的屏幕要比手机的大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互。Fragment允转载 2016-01-16 16:30:27 · 667 阅读 · 0 评论 -
android shape的使用
shape用于设定形状,可以在selector,layout等里面使用,有6个子标签,各属性如下:xml version="1.0" encoding="utf-8"?>shape xmlns:android="http://schemas.android.com/apk/res/android" > 圆角 --> corners andr转载 2016-03-29 14:42:49 · 305 阅读 · 0 评论 -
安卓-父控件、子控件焦点问题
当要处理一个Listview或者GridView或者一个布局中含有子控件的焦点问题时,可以在父控件中定义如下属性:android:descendantFocusability=”xxx” xxx的取值有3个:beforeDescendants、afterDescendants、blocksDescendantsbeforeDescendants:父控件会优先其子类控件而获取到焦点;after原创 2016-03-21 17:48:57 · 6305 阅读 · 0 评论 -
安卓-activity四种启动方式
安卓中activity的启动方式分为4种:1.activity启动方式的设置:<activity android:name=".MainActivity" android:launchMode="standard" />2.四种启动方式:standard:系统默认的启动方式。标准启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。每个窗体的getTaskId()保持不变原创 2016-03-16 18:01:21 · 701 阅读 · 0 评论 -
Fragment详解之五——Fragment间参数传递
在关Fragment间参数的传递,有两种情况:第一种情况:同一个container中不同fragment间的参数传递。这种情况一般发生在fragment跳转时,上一个Fragment将参数传递给下一个Fragment。第二种情况:是同一个Activity中,不个container间Fragment的参数传递。有关第一种情况,以前写过一篇文章,详细说明了上一个Fragment将参数传转载 2016-01-16 16:35:59 · 759 阅读 · 0 评论 -
Fragment详解之四——管理Fragment(2)
一、hide()、show()1、基本使用这两个函数的功能非常简单, [java] view plaincopypublic FragmentTransaction hide(Fragment fragment);//将指定的fragment隐藏不显示 public FragmentTransaction show(Fra转载 2016-01-16 16:35:13 · 595 阅读 · 0 评论 -
Fragment详解之三——管理Fragment(1)
一、概述 1、FragmentManager要管理activity中的fragments,你就需要使用FragmentManager。通过getFragmentManager()或getSupportFragmentManager()获得 常用的方法有:[java] view plaincopymanager.find转载 2016-01-16 16:33:49 · 961 阅读 · 0 评论 -
Fragment详解之二——基本使用方法
上一篇给大家简单说了说Fragment是用来做什么的及生命周期的问题,这篇我们就用实例来看看我们在代码中如何使用Fragment;在这里我们全部使用android-support-v4.jar包里Fragment,不用系统自带的Fragment;这两个基本一样,但V4包中的相对功能更强大一些。一、静态添加Fragment新建一个项目harvicBlog2Static,在转载 2016-01-16 16:32:36 · 381 阅读 · 0 评论 -
AlertDialog使用详解
AlertDialog使用详解普通的对话框final Builder builder = new AlertDialog.Builder(this);btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {原创 2016-04-20 10:59:06 · 3073 阅读 · 0 评论 -
安卓-android.intent.category.DEFAULT
最近在做一个launcher应用,当按下HOME键的时候,不起作用;当时的就查看SDK的源码,经过一番辛苦的追逐,然而并无所获,最终决定换一种思考方式(这点很重要),这里不在说明。安卓中activity的启动分显示启动和隐式启动。隐式启动例如:Intent intent= new Intent(this, B.class); 显示启动就是配置文件了, <intent-filter> <原创 2016-03-29 09:48:31 · 1111 阅读 · 0 评论 -
Android setFocusable(true)和requestFocus()的区别
区别: 前者是设置可以获取焦点,但不一定获得;后者是要获取焦点原创 2016-01-17 15:31:14 · 8585 阅读 · 0 评论 -
Fragment详解之六——如何监听fragment中的回退事件与怎样保存fragment状态
经过前几篇,大家应该对Fragment认识的已经足够多了,有关Fragment的基础知识在前几篇基本就讲完了,这篇给大家讲两个可能会用到的知识点。这两点理解起来可能有点难度,大家可要耐着点性子哈。一、如何监听Fragment中的回退事件1、问题阐述在Activity中监听回退事件是件非常容易的事,因为直接重写onBackPressed()函数就好了,但当大家想要监听Fr转载 2016-01-16 16:36:55 · 1156 阅读 · 0 评论 -
Security problem, see Jack server log
最近编译Android6.0时经常出现以下错误临时解决方法:Building with Jack: out/target/common/obj/APPS/Launcher3_intermediates/with-local/classes.dexERROR: Security problem, see Jack server log (/tmp/jack-weilan/jack转载 2017-03-10 14:26:48 · 1884 阅读 · 0 评论