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. Android事件分发机制浅析(1)

    本文来自网易云社区 作者:孙有军 事件机制是Android中一个比较复杂且重要的知识点,比如你想自定义拦截事件,或者某系组件中嵌套了其他布局,往往会出现这样那样的事件冲突,坑爹啊!!事件主要涵盖onT ...

  2. hdu1969Pie(根据体积二分,分馅饼)

    Pie Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...

  3. Qt 报错onecoreuap\inetcore\urlmon\zones\zoneidentifier.cxx(359)\urlmon.dll!00007FF9D9FA5B50:

    具体报错内容 onecoreuap\inetcore\urlmon\zones\zoneidentifier.cxx(359)\urlmon.dll!00007FF9D9FA5B50: (caller ...

  4. 使用unittest里面的discover()方法组织测试用例

    import osimport unittest directory = os.getcwd()# 测试用例的目录organize = unittest.defaultTestLoader.disco ...

  5. 初学Direct X (2)

    初学Direct X (2) 这一次要学习如何现实位图,尽管看过对双缓冲机制还有很多疑问,但是这并不阻碍我对他的入门了解 Direct3D提供了一个双重/后台缓冲区,在调用CreateDevice之时 ...

  6. Java并发基础--volatile关键字

    一.java内存模型 1.java内存模型 程序运行过程中的临时数据是存放在主存(物理内存)中,但是现代计算机CPU的运算能力和速度非常的高效,从内存中读取和写入数据的速度跟不上CPU的处理速度,在这 ...

  7. 【转】MMO即时战斗:地图角色同步管理和防作弊实现

    ---转自CSDN 一.前言 无论是端游.页游.手游如果是采用了MMO即时战斗游戏模式,基本都会遇到同屏多角色实时移动.释放技能.战斗等场景,于是自然也需要实现如何管理同屏内各种角色的信息同步:例如角 ...

  8. Python运行的方式

    Python的运行方式多种多样,下面列举几种: 交互式 在命令行中输入python,然后在>>>提示符后面输入Python语句,这里需要注意: 1 语句前面不能有空格,否则会报错 2 ...

  9. ubuntu上的inpack测试

    测试linpack 配置 配置linpack环境是整个过程中最麻烦的,也可能是因为我在配置的过程中出现了很多小问题吧.大概有3天的时间除了上课就在配置环境. 问题 总结起来问题和解决方法有这些 1.路 ...

  10. Spring Boot(二)配置分析

    回顾一下采用SSM开发项目时,项目中会存在多个配置文件,比如web.xml,配置Spring相关的applicationContext-springmvc.xml, applicationContex ...