Sample Apps by Android Team 代码下载:http://pan.baidu.com/s/1eSNmdUE , 代码原地址:https://code.google.com/archive/p/apps-for-android/

注:代码不是直接能够运行的项目,需要自己新建项目,再把相关文件复制到项目中。

本次是Amazed项目代码学习记录。

一、创建自定义View

@、在onSizeChanged中,通过如参w(宽)和h(高)的比较来判断手机是处于横向(Landscape)还是纵向(Portrait).

@、在onDraw中进行自定义View的界面绘制。

@、绘制界面需要Canvas和Paint:

  1、Cnavas:用来控制画什么,比如画直线(drawLine)、画矩形(drawRect)、画图(drawBitmap)。

  2、Paint:用来控制怎么画,控制样式,比如画成红色(setColor)、设置字体(setTypeface)。

@、通过调用View的方法invalidate()触发onDraw。

二、accelerometer

@、通过Activity的方法getSystemService(Context.SENSOR_SERVICE)获取到SensorManager实例(比如:mSensorManager)。

@、实现SensorListener接口,并创建实例(比如mSensorAccelerometer)。

@、注:现在的Android版本中,SensorListener接口已经被SensorEventListener接口取代了。

@、通过mSensorManager.registerListener(mSensorAccelerometer, SensorManager.SENSOR_ACCELEROMETER, SensorManager.SENSOR_DELAY_GAME)完成accelerometer sensor的注册。

@、通过mSensorManager.unregisterListener(mSensorAccelerometer)取消accelerometer sensor注册。(这样可实现暂停效果。)

@、注:传感器的坐标系是以屏幕左下角为原点,X轴沿着屏幕向右,Y轴沿着屏幕向上,Z轴垂直屏幕向上。SensorListener.onSensorChanged的第二个参数values分别对应X、Y、Z轴上的加速度,此加速度包括了重力加速度在各轴上的分量。例如,当手机平放时,重力加速度全部作用于Z方向,但是与Z方向相反,因此values[2] = -g(g代表重力加速度)。

三、assets

1、main/assets/目录用来放置那些不会因为设备配置改变而改变的文件。比如游戏关卡设置的数据。

2、通过Activity的getAssets方法获取到AssetsManager实例,在用AssetsManager实例调用open方法读取assets目录下的文件。

Sample Apps by Android Team -- Amazed的更多相关文章

  1. Open Phone, SMS, Email, Skype and Browser apps of Android in Unity3d

    最近项目需要使用Android的一些基本功能,写插件各种悲剧,google了一下,如获至宝.Nice ! string url = String.Format("tel:{0}", ...

  2. Android测试:Testing Apps on Android

    原文:https://developer.android.com/training/testing/index.html 测试你的App是开发过程中的重要组成部分.通过对应用程序持续的运行测试,你可以 ...

  3. 10个android开发必备的开源项目

    You are here: Home » » Blog » 10 Open Source Android Apps which every Android developer must look in ...

  4. TensorFlow Lite demo——就是为嵌入式设备而存在的,底层调用NDK神经网络API,注意其使用的tf model需要转换下,同时提供java和C++ API,无法使用tflite的见后

    Introduction to TensorFlow Lite TensorFlow Lite is TensorFlow’s lightweight solution for mobile and ...

  5. [Android]Volley源码分析(四)

    上篇中有提到NetworkDispatcher是通过mNetwork(Network类型)来进行网络访问的,现在来看一下关于Network是如何进行网络访问的. Network部分的类图:

  6. Android开源项目分类汇总

    目前包括: Android开源项目第一篇——个性化控件(View)篇   包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView. ...

  7. android 很多牛叉布局github地址(转)

    原文地址 http://blog.csdn.net/luo15309823081/article/details/41449929 点击可到达github-------https://github.c ...

  8. Android开源项目(二)

    第二部分 工具库 主要包括那些不错的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. 一.依赖注入DI 通过 ...

  9. GitHub上史上最全的Android开源项目分类汇总 (转)

    GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...

随机推荐

  1. 回归基础: JavaScript 变量提升

    from me: javascript的变量声明具有hoisting机制,它是JavaScript一个基础的知识点,也是一个比较容易犯错的点,平时在开发中,大大小小的项目都会遇到. 它是JavaScr ...

  2. Oracle sysdate 时间加减

    加法 select sysdate,add_months(sysdate,12) from dual;        --加1年 select sysdate,add_months(sysdate,1 ...

  3. Android之NetworkOnMainThreadException异常

    看名字就应该知道,是网络请求在MainThread中产生的异常 先来看一下官网的解释: Class Overview The exception that is thrown when an appl ...

  4. 剑指Offer 栈的压入、弹出序列

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序 ...

  5. 【转】【编码】ASCII 、UNICODE和UTF-8之二

    字符发展 1. 美国 ASCII-(American standard code information interchange) 美国信息互换标准代码 范围:1-127 ; 单字 备注:前部用作控制 ...

  6. phpcms评论框iframe无法自适应问题

    问题背景: 之前用友言的时候改过网站的ip地址,改成127开头的了.但是协同开发的时候别人用的还是localhost. 结果在用评论的时候iframe死活不能自适应,看了一下源代码v9本身已经写过if ...

  7. Aufs与Devicemapper的关系

    Aufs与Devicemapper的应用 Aufs是Docker最初采用的文件系统,由于Aufs未能加入到Linux内核,考虑到兼容性问题,加入了Devicemapper的支持.目前,除少数版本如Ub ...

  8. android气泡消息提醒布局

    无论是anroid还是ios,气泡消息提醒再正常不过了.然而要定义一个气泡消息提醒确要费一番周折.下面记录下气泡提醒布局. 定义气泡背景shape_unread_message_bg.xml < ...

  9. 细看INNODB数据落盘

    本文来自:沃趣科技 http://www.woqutech.com/?p=1459 1.  概述 前面很多大侠都分享过MySQL的InnoDB存储引擎将数据刷新的各种情况.我们这篇文章从InnoDB往 ...

  10. SAP ALV显示并打印(非OO方式)

    *&---------------------------------------------------------------------* *& Report  Z_SD_CPF ...