文档章节

Android学习笔记-Lesson 5: Flag Quiz Game App (2)

勤奋的桑尼
 勤奋的桑尼
发布于 2014/09/02 17:41
字数 687
阅读 22
收藏 0

1, preferences

// set default values in the app's SharedPreferences
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);

// register listener for SharedPreferences changes
PreferenceManager.getDefaultSharedPreferences(this).
registerOnSharedPreferenceChangeListener(
preferenceChangeListener);

2, 设备尺寸相关,判断设备属于哪个level的设备

 // determine screen size 
      int screenSize = getResources().getConfiguration().screenLayout &
         Configuration.SCREENLAYOUT_SIZE_MASK;

      // if device is a tablet, set phoneDevice to false
      if (screenSize == Configuration.SCREENLAYOUT_SIZE_LARGE ||
         screenSize == Configuration.SCREENLAYOUT_SIZE_XLARGE )
         phoneDevice = false; // not a phone-sized device
         
      // if running on phone-sized device, allow only portrait orientation
      if (phoneDevice) 
         setRequestedOrientation(
            ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

3, 判断屏幕是横屏还是竖屏

 Display display = ((WindowManager) 
         getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
      Point screenSize = new Point(); // used to store screen size
      display.getRealSize(screenSize); // store size in screenSize
      
      // display the app's menu only in portrait orientation
      if (screenSize.x < screenSize.y) // x is width, y is height
      {
         getMenuInflater().inflate(R.menu.main, menu); // inflate the menu      
         return true;
      }
      else
         return false;

4, java.secure.SecureRandom 与 java.util.Random 的区别

    SecureRandom继承于Random,提供更为随机的序列。我们都知道随机数并不随机,SecureRandom就降低了根据前一个随机数猜测到后一个随机数的可能性,使得序列更加随机化。

5,Fragment的lifecycle:转自http://www.cnblogs.com/purediy/p/3276545.html

Fragment与Activity生命周期对比图:

    生命周期分析:

    1. 当一个fragment被创建的时候,它会经历以下状态.

    • onAttach()

    • onCreate()

    • onCreateView()

    • onActivityCreated()

    2. 当这个fragment对用户可见的时候,它会经历以下状态。

    • onStart()

    • onResume()

    3. 当这个fragment进入“后台模式”的时候,它会经历以下状态。

    • onPause()

    • onStop()

    4. 当这个fragment被销毁了(或者持有它的activity被销毁了),它会经历以下状态。

    • onPause()

    • onStop()

    • onDestroyView()

    • onDestroy() 

    • onDetach()

    5. 就像activitie一样,在以下的状态中,可以使用Bundle对象保存一个fragment的对象。

    • onCreate()

    • onCreateView()

    • onActivityCreated()

    6. fragments的大部分状态都和activitie很相似,但fragment有一些新的状态。

    • onAttached() —— 当fragment被加入到activity时调用(在这个方法中可以获得所在的activity)。

    • onCreateView() —— 当activity要得到fragment的layout时,调用此方法,fragment在其中创建自己的layout(界面)。

    • onActivityCreated() —— 当activity的onCreated()方法返回后调用此方法

    • onDestroyView() —— 当fragment中的视图被移除的时候,调用这个方法。

    • onDetach() —— 当fragment和activity分离的时候,调用这个方法。

      一旦activity进入resumed状态(也就是running状态),你就可以自由地添加和删除fragment了。因此,只有当activity在resumed状态时,fragment的生命周期才能独立的运转,其它时候是依赖于activity的生命周期变化的。

6, annimation

resource文件:incorrect_shake.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"
   android:interpolator="@android:anim/decelerate_interpolator">

   <translate android:fromXDelta="0" android:toXDelta="-5%p" 
      android:duration="100"/>
   
   <translate android:fromXDelta="-5%p" android:toXDelta="5%p" 
      android:duration="100" android:startOffset="100"/>
   
   <translate android:fromXDelta="5%p" android:toXDelta="-5%p" 
      android:duration="100" android:startOffset="200"/>
</set>

Java Code:

private Animation shakeAnimation; // animation for incorrect guess

// load the shake animation that's used for incorrect answers
      shakeAnimation = AnimationUtils.loadAnimation(getActivity(), 
         R.anim.incorrect_shake); 
      shakeAnimation.setRepeatCount(3); // animation repeats 3 times 
      
XX.startAnimation(shakeAnimation); // XX is the component which wants to play shake


© 著作权归作者所有

勤奋的桑尼
粉丝 1
博文 32
码字总数 32516
作品 0
徐汇
程序员
私信 提问
Android 开发艺术探索读书笔记(一)

之前断断续续地学了一些 Android 开发基础,也写过几个简单的 app,但都是特别简单的那种,还有很多知识学完了没有用过,现在已经忘得差不多了。最近找到一本书叫 Android 开发艺术探索(作者...

andorxor
2018/07/23
0
0
Android实战经验之图像处理及特效处理的集锦(总结版)

1 Android学习笔记进阶之在图片上涂鸦(能清屏) 2 Android学习笔记之详细讲解画圆角图片 3 Android学习笔记进阶20之得到图片的缩略图 4 Android学习笔记进阶19之给图片加边框 5 Android学习笔...

xiaosi
2012/03/12
40.1K
25
Android自定义属性,format详解

reference:参考某一资源ID。 (1)属性定义: <declare-styleable name = "名称"> <attr name = "background" format = "reference" /> </declare-styleable> (2)属性使用: <ImageView a......

caikezhan
2012/04/07
274
0
declare-styleable中format详解

我们在做项目的时候,由于android自带的属性不能满足需求,android提供了自定义属性的方法,其中的format是做什么用的?以及如何使用它?下面列出一些常用的。 1. reference:参考某一资源I...

kiy
2014/04/14
63
0
Android中attr自定义属性详解

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:wen=http://schemas.android.com/apk/res/com.iteye.googlers android:orientation="vertical" android:l......

惊浪
2015/04/27
2.8K
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 熟悉的味道,难道这就是恋爱的感觉

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :好久没分享歌了分享张碧晨的单曲《今后我与自己流浪》 《今后我与自己流浪》- 张碧晨 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
132
7
SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
18
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
4
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
昨天
10
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部