前言 LiveData与ViewMode是经常搭配在一起使用的,但是为了不太混乱,我还是拆分开来说明,此篇博客只讲解 LiveData 与 MutableLiveData的概念与使用方式(但是会涉及到ViewMode的部分代码). LiveData是干什么的? 由于LiveData和MutableLiveData都是一个概念的东西(只是作用范围不同)所以就不重复解释了,直接理解LiveData就可以明白MutableLiveData 直接理解LiveData的字面意思是前台数据,其实这其实是很准…
0. 前言   转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52566965 深入学习事件分发机制,是为了解决在Android开发中遇到的滑动冲突问题做准备.事件分发机制描述了用户的手势一系列事件是如何被Android系统传递并消费的. 首先对事件分发机制进行概述:如果当一个点击事件发生时,事件最先传递给当前Activity,再传递给Window,接着传递给顶级View,最后按照事件分发机制去分发事件.事件的传递过程可以用以下伪…
前言 在需要实现一个List的item需要包含列表的时候,我们就可以选择ExpandableListView. 其实这个View的原始设计还是ListView的那套.就是增加2层的ListView而已.所以在写它的适配器与ListView的适配器挺相似的,所以会有一个通病就是没有Item的View的复用机制请一定要注意这点,在实现使用的时候需要写Item的View的复用,减少内存与增加性能. 一个简单的Demo 老规矩,先来一个最简单的demo来了解下最基本的使用方法.注意!这个demo是没有在…
HelloWorld程序的目录结构概述 我们可以在文件夹中看到,HelloWorld程序的目录主要包括:src文件夹.gen文件夹.Android文件夹.assets.res文件夹. AndroidManifest.xml.default.properties.在Eclipse的左侧展开HelloWorld项目,可以看到如下图的目录结构: 下面将分节介绍上面的各级目录结构. 1.src文件夹 顾名思义(src, source code)该文件夹是放项目的源代码的.打开HelloWorld.jav…
在android开发中地图和定位是很多软件不可或缺的内容,这些特色功能也给人们带来了很多方便.定位一般分为三种发方案:即GPS定位.Google网络定位以及基站定位 最简单的手机定位方式当然是通过GPS模块(现在大部分的智能机应该都有了).GPS方式准确度是最高的,但是它的缺点也非常明显:1,比较耗电:2,绝大部分用户默认不开启GPS模块:3,从GPS模块启动到获取第一次定位数据,可能需要比较长的时间:4,室内几乎无法使用.这其中,缺点2,3都是比较致命的.需要指出的是,GPS走的是卫星通信的通…
前言 开始之前还是需要废话一下,因为有一些坑需要告知.首先MaterialDialog在GitHub上作者已经转型使用100% Kotlin语言编写,虽然可以在Java里调用Kotlin使用.但是个人暂时不想接触,所以依然会使用老版本的MaterialDialog.Java最后的版本是0.9.6.0版本,所以我们以这个版本为例子记录一些平时个人用到的例子.另外不需要太担心高版本无法适配,目前在Android 9.0版本依然效果良好. 作者的GitHub地址:https://github.com/…
简介 Android设备,有3个地方的文件存储位置,他们分别是: 内部存储空间(用户无法浏览到此目录) 外部存储空间(就是手机自身的文件管理目录,用户可以浏览) SD卡的存储空间(需要插入T卡) SharedPreferences目录 存储数据库DB目录 内部存储空间 内部存储空间的获取都需要使用Context. 方法 getFilesDir(); 对应内部存储的路径为: data/data/packagename/files String filesDir = getApplicationCo…
转载:http://blog.csdn.net/abcdef314159 //Paint的setStyle,Style共有3种 setStyle(Style style) Paint.Style.FILL:填充内部Paint.Style.FILL_AND_STROKE  :填充内部和描边Paint.Style.STROKE  :描边 //setStrokeCap,Cap也有3种类型,主要是线条的末端,为了直观,下面三个线条我设置的比较粗 setStrokeCap(Cap cap) //setSt…
布局权重 线性布局支持给个别的子视图设定权重,通过android:layout_weight属性.就一个视图在屏幕上占多大的空间而言,这个属性给其设 定了一个重要的值.一个大的权重值,允许它扩大到填充父视图中的任何剩余空间.子视图可以指定一个权重值,然后视图组剩余的其他的空间将会分配给其声明权 重的子视图.默认的权重是0: 未使用权重前效果图: 俩个线性布局组件,代码如下: 01.<?xml version="1.0" encoding="utf-8"?>…
.HandlerThread Android API提供了HandlerThread来创建线程.官网的解释是: //Handy class for starting a new thread that has a looper. //The looper can then be used to create handler classes. //Note that start() must still be called. )但是需要注意的是,当activity退出了,这个HandlerThre…