文档章节

Android学习笔记-Lesson 7:Doodlz App

勤奋的桑尼
 勤奋的桑尼
发布于 2014/09/28 12:02
字数 396
阅读 11
收藏 0

知识点:

1、 单点触摸事件和多点触摸

2、SensorManager:加速计-检测动作事件

3、Canvas、Paints和Paths

4、 Menus

5、Android 4.4 immersive mode

6、Android 4.4 Printing framework

7、PrintHelper

8、根据android version决定app功能

学习课程:

1、根据不同的版本显示不同的menu:

只需在res下创建特定版本的文件夹即可,譬如针对android version 19的功能与其他版本不同,那么只需在res下多创建一个名字为"menu-v19"的文件夹,再将相关menu配置文件放在其中即可。

2、根据屏幕尺寸设置屏幕的朝向:

int screenSize = getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK;
		
if(screenSize == Configuration.SCREENLAYOUT_SIZE_XLARGE){
	setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}else{
	setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

3 、监听“摇一摇”

 // enable listening for accelerometer events
   public void enableAccelerometerListening()
   {
      // get the SensorManager
      SensorManager sensorManager = 
         (SensorManager) getActivity().getSystemService(
            Context.SENSOR_SERVICE);

      // register to listen for accelerometer events
      sensorManager.registerListener(sensorEventListener, 
         sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 
         SensorManager.SENSOR_DELAY_NORMAL);
   }
   // event handler for accelerometer events
   private SensorEventListener sensorEventListener = 
      new SensorEventListener()
      {
         // use accelerometer to determine whether user shook device 
         @Override
         public void onSensorChanged(SensorEvent event)
         {  
            // ensure that other dialogs are not displayed
            if (!dialogOnScreen)
            {
               // get x, y, and z values for the SensorEvent
               float x = event.values[0];
               float y = event.values[1];
               float z = event.values[2];
      
               // save previous acceleration value
               lastAcceleration = currentAcceleration;
      
               // calculate the current acceleration
               currentAcceleration = x * x + y * y + z * z;
      
               // calculate the change in acceleration
               acceleration = currentAcceleration * 
                  (currentAcceleration - lastAcceleration);
      
               // if the acceleration is above a certain threshold
               if (acceleration > ACCELERATION_THRESHOLD)
                  //TODO do something
            } 
         } // end method onSensorChanged
      
         // required method of interface SensorEventListener
         @Override
         public void onAccuracyChanged(Sensor sensor, int accuracy)
         {
         } 
      }; // end anonymous inner class
// disable listening for accelerometer events
   public void disableAccelerometerListening()
   {
      // get the SensorManager
      SensorManager sensorManager = 
         (SensorManager) getActivity().getSystemService(
            Context.SENSOR_SERVICE);

      // stop listening for accelerometer events
      sensorManager.unregisterListener(sensorEventListener, 
         sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER));         
   }

4、隐藏和显示system bar

// hide system bars and action bar
   public void hideSystemBars()
   {
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
         setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
            View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
            View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
            View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | 
            View.SYSTEM_UI_FLAG_FULLSCREEN |
            View.SYSTEM_UI_FLAG_IMMERSIVE);
   }

   // show system bars and action bar
   public void showSystemBars()
   {
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
         setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
            View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
            View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
   }


© 著作权归作者所有

共有 人打赏支持
勤奋的桑尼
粉丝 1
博文 32
码字总数 32516
作品 0
徐汇
程序员
【Android学习总结】之Activity:深入理解、体验Activity的生命周期

【本博客内的文章是本人的学习笔记总结,如有错误请各位批评指正,谢谢!欢迎加入群285077071讨论】 关于Activity的生命周期的学习,我将从以下几个方面入手来全面认识: 一、什么是生命周期...

kinbos
06/26
0
0
一份关于 Java、Kotlin 与 Android 的学习笔记

JavaKotlinAndroidLearn 这是一份关于 Java 、Kotlin 、Android 的学习笔记,既包含对基础知识点的介绍,也包含对一些重要知识点的源码解析,笔记的大纲如下所示: Java 重拾Java(0)-基础知...

叶应是叶
08/08
0
0
android ui机制的学习笔记

1,Activity中有一个DecorView; 2,DecorView是在PhoneWindow中; 2-1,PhoneWindow中有DecorView和mContentParent。mContentParent是DecorView或者是DecorView的子视图; 3,Activity的Win......

蚂蚁的世界
2015/06/29
0
0
[学习笔记一]、Android体系与系统架构

1、Android系统架构 2、Linux Linux层,Android最底层最核心的部分。我们打款手机Setting,选择about phone选项,这一选项所显示的内核版本,就是我们所用的Linux内核的版本。 Linux层包含了A...

2tman
2015/11/20
0
0
Android学习笔记之AndroidManifest.xml文件解析

一、关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,...

lin_647
2014/02/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

兄弟连区块链入门教程eth源码分析core-vm源码分析(二)

  兄弟连区块链入门教程eth源码分析core-vm源码分析(二),合约创建 Create 会创建一个新的合约。        // Create creates a new contract using code as deployment cod...

兄弟连区块链入门教程
20分钟前
3
0
python打造特别火的一个小游戏,16行代码实现3D撞球小游戏!

以下是制作上面炫酷动画所需的全部代码: 我们需要三组刚体(当您在Blender的对象上打开一个刚体的属性时,Blender将模拟与其它刚体的碰撞): 1.平面 第2行代码创建了一个简单的平面,立方体...

糖宝lsh
22分钟前
1
0
SQL语言分类

SQL(Structure Query Language)语言是数据库的核心语言。 SQL语言共分为四大类: 数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL。 数据定义语言DDL 数据定义语言DDL...

阿dai
25分钟前
1
0
UICollectionView的headerView、footerView使用以及与UITableView加载headerView、footerView的区别

前序 最近在一家公司实习,学习一些ios的知识。因为以前没有使用过UICollectionView,所以带我的导师让我仿照公司APP中的一个UICollectionView自己做一个练练手。期间遇到了一些问题:我们知...

壹峰
26分钟前
2
0
IMP-00017: following statement failed with ORACLE error 20005:

/*报错信息Export file created by EXPORT:V11.02.00 via conventional pathimport done in AL32UTF8 character set and AL16UTF16 NCHAR character setexport client uses ZHS16GBK char......

fengzhi714
30分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部