Android 学习笔记 34

回顾
1. 加载模式
   standard
   singleTop
   singleTask
   singleInstance
  
   onNewIntent()
  
   SingleTon
   单实例设计模式
   全局只有一个实例
   1. 构造方法私有
   2. 类内部创建实例
   3. static方法获取实例
   饱汉: 成员变量初始化
   饿汉: (延迟加载)第一次使用的时候初始化
   Lazy Loading
   ListView
   不要重复发明轮子
   复用 消除重复
   延迟加载
  
2. 自定义OptionsMenu
   详细分析被替换对象的特征
   显示:Menu  
   隐藏:1. 再按Menu
         2. Back
         3. other
         4. MenuItem
         5. onPause()
        
3. 布局的标签和优化
   include
   merge  
   requestFocus
   viewstub
  
定制ProgressBar 
1. 无尽
实现方法:
android:indeterminateDrawable="@drawable/progressbaranim"

   1. 查找style的定义
sdk\platforms\android-10\data\res
\values\attrs.xml   styles.xml
   关键字:progressbar
  
   找到决定UI显示的属性
<item name="android:indeterminateDrawable">
@android:drawable/progress_medium_white</item>
  
     


产品经理    用户交互设计师  研发
  
             
3. 有序广播
   垃圾短信过滤
   系统短信广播ACTION:
android.provider.Telephony.
   SMS_RECEIVED
声明权限:android.permission.RECEIVE_SMS
   指定广播接收者的优先级
   <intent-filter android:priority="">
   priority:值的范围:-1000~1000
  
   发送有序广播:
   sendOrderedBroadcast
  
   中止有序广播
   abortBroadcast();
  
  
   IP拨号
   获取数据:getResultData()
   修改数据:setResultData(telnumber);
  
   权限:
   android.permission.PROCESS_OUTGOING_CALLS
   Action:
   android.intent.action.
      NEW_OUTGOING_CALL
     
4. WebView
   是什么:是一个UI组件,是显示Html的组件,
   使用了一个Html和js语法解析引擎
   Webkit是一个开源的html、js解析引擎
   iOS safari
   搜狗
  
   好处:Android UI-> Htm
         以用户体验品质为代价换时间
   HTML5 native app  
  
   以web技术为基础跨移动平台的开发框架
   phonegap
   reexxx
  
   如何使用:
   1. 布局中添加Webview
   mWebView.loadUrl("http://www.baidu.com/");
   2. 点击链接时不启动系统浏览器        
   mWebView.setWebViewClient(new WebViewClient());
   3. 浏览本地html文件
   mWebView.loadUrl(
       "file:///android_asset/android.html");
      
   4. 进度刷新
     mWebView.setWebChromeClient(new WebChromeClient()
        {
         @Override
         public void onProgressChanged(WebView view, int newProgress) {
          mProgressBar.setProgress(newProgress);
         }
        }); 
       
    5. LocalView和WebView数据交互
       Local -> WebView
      
       WebView -> Local
      
    6. 获得焦点
  mWebView.setOnTouchListener(new OnTouchListener() {
   
   @Override
   public boolean onTouch(View v, MotionEvent event) {
    mWebView.requestFocus();
    return false;
   }
  });   
  
5. 横纵屏
   横纵屏切换:
   当前的Activity的成员变量的数据可能丢失
  
   UI界面的数据不会丢失  
  
   与UI无关的状态,需要持久化
   onStop() 存储
   onStart() 恢复
  
   处理屏幕改变
   1. manifest指定方向
      android:screenOrientation="portrait"
   2. manifest指定配置改变
      android:configChanges="orientation|keyboardHidden"
   3. 覆写Activity中的onConfigurationChanged()
      if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
     {
     }
     else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
     {
     }  
 
        
  
  
  
         

posted @ 2012-02-09 22:53  Stanley.Luo  阅读(315)  评论(0编辑  收藏  举报