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. java操作HDFS

    package com.lei.hadoop; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Fil ...

  2. solr 常见的问题整理 -费元星

    本文是我在开发过程中遇到的一些问题的整理,有些摘自网上别人的方法. 1. org.apache.solr.client.solrj.SolrServerException: Timeout occur ...

  3. Vue框架核心之数据劫持

    本文来自网易云社区. 前瞻 当前前端界空前繁荣,各种框架横空出世,包括各类mvvm框架横行霸道,比如Angular.Regular.Vue.React等等,它们最大的优点就是可以实现数据绑定,再也不需 ...

  4. `Facebook.Unity.Settings' has already been imported error solution

    after import facebook sdk to unity, i get the '`Facebook.Unity.Settings' has already been imported' ...

  5. 2019年猪年海报PSD模板-第八部分

    11套精美猪年海报,免费猪年海报,下载地址:百度网盘,https://pan.baidu.com/s/1Y3wc_r7O-Dp0mLCihJ9mtQ            

  6. 「日常训练」Skills(Codeforce Round #339 Div.2 D)

    题意(CodeForces 614D) 每个人有\(n(n\le 10^5)\)个技能,技能等级都在\([0,10^9]\)的范围,每个技能有一个当前等级,所有技能的最高等级都为A.一个人的力量被记做 ...

  7. Git与远程仓库关联以及关联错误解决方法

    假设你github的用户名是  helloworld  ,你在上面创建了一个 名为 hello 的 repository. 一. 与本地仓库进行关联 1.1用原生ssh进行关联,速度快: git re ...

  8. lesson 19 A very dear cat

    lesson 19 A very dear cat dear adj. 亲爱的:尊敬的:昂贵的 表示几乎不,很少的词语 rarely hardly seldom scarcely flat = apa ...

  9. Python爬虫使用浏览器的cookies:browsercookie

    很多用Python的人可能都写过网络爬虫,自动化获取网络数据确实是一件令人愉悦的事情,而Python很好的帮助我们达到这种愉悦.然而,爬虫经常要碰到各种登录.验证的阻挠,让人灰心丧气(网站:天天碰到各 ...

  10. 【WXS全局对象】Date

    属性: 名称 说明 Date.parse( [dateString] ) 解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数. Date.UTC(year,month,day ...