1.系统相册默认保存地址:android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/Camera";

File[] list = file.listFiles(new FileFilter() {
  @Override
  public boolean accept(File pathname) {
    if (pathname.lastModified() > maxTime)
      return true;
    return false;
  }
});

.读取assets目录中的文件(返回InputStream对象)
InputStream ins = getResources().getAssets().open("xx.html");
assets目录中的内容和res\raw目录中的内容相同,都会按原样被封装在apk文件中

3.在属性中引用资源的语法详解:
@[<package_name>:]<resource_type>/<resource_name>
>>1、R类的package,如果R类的package与Manifest.xml中定义的package相同,可以不指定package,如果引用android系统资源,就需要引用package,如:@android:string/copy;
>>2、R的子类的名称;
>>3、资源的文件名(不包含扩展名)或xml资源文件中标签的android:name属性值;

4.Bundle对象读取传递对象
Bundle相当于一个Map对象,可能存取key-value类型的值,在不同activity中传递数据可以通过Bundle对象传递;
Intent.putExtra()方法实际上在Intent类的内部也是通过使用Bundle对象来存取数据的。如下以putExtra(String,boolean)为例.

    public Intent putExtra(String name, boolean value) {
if (mExtras == null) {
mExtras = new Bundle();
}
mExtras.putBoolean(name, value);
return this;
}

Activity在释放和装载的过程中也会利用Bundle对象来存取一些值,以便可以恢复Activity之前的状态;
保存:
当Activity对象被释放时,系统会调用Activity.onSaveInstanceState方法保存释放之前的状态(主要是一些变量的值);
protected void onSaveInstanceState(Bundle outState)
此方法只有一个Bundle类型的参数,可以利用此参数保存变量的值。
恢复:
恢复变量的值可以在Activity.onCreate()方法或Activity.onRestoreInstanceState()中完成,系统先调用onCreate(),再调用onRestoreInstanceState()
protected void onCreate(Bundle savedInstanceState)
protected void onRestoreInstanceState(Bundle savedInstanceState)
两个方法都有一个Bundle类型的参数,可以使用此参数恢复变量的值,如果没有保存任何值,则两个参数值都为null,因此恢复变量的值时得先判断savedInstanceState的值是否为null;
onSaveInstanceState和onRestoreInstanceState分别用来保存和恢复状态,但它们不会因为当前Activity状态的主动变化而调用,只有在当前Activity受到外力使状态改变的情况下才会被调用;也就是说比如当来电,Home键回到桌面等情况下由于其它操作使Activity状态发生改变,系统才会调用这两个方法;

5.处理Activity配置属性改变
通过配置android:configChanges属性值处理配置的变化,配置此属性之后系统会调用onConfigurationChanger()方法处理配置改变事件;如果没有配置此属性,在切换横竖屏的时候,Activity会调用onCreate方法;

    @Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// 处理屏幕方向变化
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
// newConfig.orientation == Configuration.ORIENTATION_PORTRAIT;
}
// 处理键盘配置变化
if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
// newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES;
}
}

屏幕适配定义原则:大分辨率x小分辨率
在res文件夹下新建一个layout-480x320文件夹,在此文件夹下添加一个布局文件,和layout文件夹下的文件名称一样,如果软件运行在480x320的手机平台上会自动使用此文件夹下的布局文件;
如果想要添加一个运行在320x240的手机上的layout,就需要添加一个layout-320x240文件夹,如果没有相匹配的分辨率,会默认使用layout文件夹下的布局文件;

6.解决EditText自动弹出软件盘事件,只需要在控件的父级控件中加入如下两个属性即可阻止EditText自动弹出软件盘

        android:focusable="true"
android:focusableInTouchMode="true"

Android <Android应用开发实战> 学习总结杂项的更多相关文章

  1. React Native Android原生模块开发实战|教程|心得|怎样创建React Native Android原生模块

    尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://blog.csdn.net/fengyuzhengfan/article/details/54691503) 告诉大家一个好消息. ...

  2. android 自定义View开发实战(六) 可拖动的GridView

    1前言 由于项目需求,需要把项目的主界面采用GridView显示,并且需要根据模块优先级支持拖动图标(砍死产品狗).为此,自定义了一个支持拖拽图标的GridView.效果如下: 具体效果如上图 2 可 ...

  3. 极客时间-vue开发实战学习(ant-design vue作者)

    vue基础 属性 事件 插槽 指令(Directives) 生命周期 底层原理 vue生态 路由管理器vue Router 状态管理器vuex 同构Nuxt vue实战 实战项目-ant-desing ...

  4. Python3 网络爬虫开发实战学习弱点书签

    1. urllib.robotparse模块对robot.txt文件的解析,can_fetch()方法和parse()方法. Page121 2. lxml.etree模块自动补全Html代码,Htm ...

  5. 《Hadoop》大数据技术开发实战学习笔记(二)

    搭建Hadoop 2.x分布式集群 1.Hadoop集群角色分配 2.上传Hadoop并解压 在centos01中,将安装文件上传到/opt/softwares/目录,然后解压安装文件到/opt/mo ...

  6. Xamarin Android开发实战(上册)大学霸内部资料

    Xamarin Android开发实战(上册)大学霸内部资料   试读文档下载地址:http://pan.baidu.com/s/1jGEHhhO 密码:vcfm 介绍: 本教程是国内唯一的Xamar ...

  7. Android Wear(手表)开发 - 学习指南

    版权声明:欢迎自由转载-非商用-非衍生-保持署名.作者:Benhero,博客地址:http://www.cnblogs.com/benhero/ Android Wear开发 - 学习指南 http: ...

  8. Android 音视频开发学习思路

    Android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的.只能通过一点点的学习和积累把这块的知识串联积累起来. 初级入门篇: Android 音视频开发(一) ...

  9. Android开发该学习哪些东西?

    开篇: 本人也是众多Android开发道路上行走的一员,听了不少大神的知乎live,自己也看了不少书,也和不少前辈交流过,所以在这里分享一下Android开发应该学习的书籍以及知识,当然,也包括一些方 ...

随机推荐

  1. react-native android 初始化问题

    最近开始接触rn,官方起手,装了一堆工具,然后启动项目的时候出现了一堆问题,这里针对我遇到的一些问题提供一些解决方案. 本人开发环境mac,在启动ios的时候没啥大问题,可以直接启动,这里提示一点,因 ...

  2. 抓取Oracle数据快照

    进入到oracle安装目录下的admin(找到这个目录)开启cmd键入sqlplus system/mima@实例名>@awrrpt.sql Would you like an HTML rep ...

  3. 使用postman实现半自动化

    前些日子项目要上一个活动,其中有一个功能是幸运大转盘,用户可以随机抽奖,奖品有多种满减券及多种商品,但是奖品都是有抽中概率的,且有的商品还设置有库存,所以测试点便是测试抽奖的概率和库存.接下来拆分一下 ...

  4. caffe Mac 安装

    参考了 https://zhuanlan.zhihu.com/p/24853767 安装caffe的依赖项 brew install --fresh -vd snappy leveldb gflags ...

  5. leetcode-打家劫舍(动态规划)

    你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给定一个代表每 ...

  6. loadrunner_遇到cookie接口_3种应对方法

    方法一:是调用登录接口,在调用登录后的接口 方法二:手动储存cookie,写死cookie 方法一:提前登录收集cookie,写成参数化文件 方法一,案例(就是先登录,再写登录后的接口): 注:use ...

  7. Java学习笔记-11.运行期间类型鉴定

    1.Class对象的getClasses()方法获取的是该类中所有的公共的内部类,以及从父类,父接口继承来的内部类.getinterfaces()方法返回类继承的所有接口. import javax. ...

  8. Elasticsearch 排序插件的开发

    直接观察到的几个问题 简单expression脚本的执行效率 > java 插件,10000条数据可以测试出1ms左右的差距. Es会不断调用newScript来创建"足够多" ...

  9. 基于Hadoop2.5.0的集群搭建

    http://download.csdn.net/download/yameing/8011891 一. 规划 1.  准备安装包 JDK:http://download.oracle.com/otn ...

  10. Thunder团队贡献分分配规则

    规则1:基础分,拿出总分的40%进行均分. 规则2:参与会议者,每人次加0.5分. 规则3:积极贡献者,通过团队投票,半数及以上同意,每次加0.5分. 规则4:根据项目完成情况,核实每个人的工作量,投 ...