Time of Update: 2013-12-11
時隔一年,又要準備做Android的開發了,最近複習和整理一下Android的知識。這次要說的是AlertDialog,這種對話方塊會經常遇到。AlertDialog跟WIN32開發中的Dialog不一樣,AlertDialog是非阻塞的,而阻塞的對話方塊用的是PopupWindow。 先貼出程式啟動並執行:main.xml的源碼:view plaincopy to clipboardprint?<?xml
Time of Update: 2013-12-11
上次簡單地介紹了AudioRecord和AudioTrack的使用,這次就結合SurfaceView實現一個Android版的手機類比訊號示波器(PS:以前也講過J2ME版的手機示波器)。最近物聯網炒得很火,作為手機軟體開發人員,如何在不修改手機硬體電路的前提下實現與第三方感應器結合呢?麥克風就是一個很好的ADC介面,通過麥克風與第三方感應器結合,再在軟體裡對類比訊號做相應的處理,就可以提供更豐富的感測化應用。先來看看本文程式啟動並執行(螢幕錄影速度較慢,真機實際運行起來會更加流暢): 
Time of Update: 2013-12-11
在主函數main裡調用這個函數來做什麼呢?而這個函數是怎麼樣實現的呢?下面就來瞭解這個函數的功能與產現,具代碼如下:#001 void open_devnull_stdio(void)#002 {#003 int fd;#004 static const char *name =
Time of Update: 2013-12-11
前面學習了屬性系統的初始化和載入,還有儲存到屬性檔案等功能,下面來學習屬性服務的方面,它主要用來提供一種服務的方式給java虛擬機器上層使用,或者java應用程式使用。start_property_service函數的代碼如下:#001 int start_property_service(void)#002 {#003 int fd;#004 #005
Time of Update: 2013-12-11
<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --> 初看這段代碼時,感覺非常奇怪,沒有看到任何開啟檔案的函數,也沒有任何關閉檔案的函數,就可以直接操作讀取和寫入。難道檔案是可以自動開啟的嗎?從linux系統調用API裡知道是不可能啊!這時,反覆查看輸入的命令列,如下:rgb2565 –rle <xiyang.raw
Time of Update: 2013-12-11
aidl這裡就不加累述它的概念定義等等,免得長篇大幅。下面介紹的是我第一次使用aidl成功與service通訊的一個例子:1.在項目包下建立一個IInfo.aidl,並在其中添加你要調用的方法,格式和java中介面一樣。01package com.android.server; 02 03interface IInfo {04 boolean start();05 void stop();06
Time of Update: 2013-12-11
釋放MediaPlayer MediaPlayer可能消耗大量的系統資源.因此你應該總是採取一些額外的措失來確保在一個MediaPlayer執行個體上不會掛起太長的時間.當你用完MediaPlayer時,你應該總是調用release()來保證任何分配給MediaPlayer的系統資源被正確地釋放.例如,如果你正在使用MediaPlayer並且你的activity收到了一個對onStop()的調用,你必須釋放MediaPlayer,因為當你的activtiy不再與使用者互動時繼續保持MediaP
Time of Update: 2013-12-11
看到這個例子的標題RoundRects,我的第一感覺是介紹RoundRectShape, 開啟例子看了代碼卻是使用GradientDrawable來實現的。GradientDrawable 支援使用漸層色來繪製圖形,通常可以用作Button或是背景圖形。GradientDrawable允許指定繪製圖形的種類:LINE,OVAL,RECTANGLE或是RING ,色彩坡形支援LINEAR_GRADIENT,RADIAL_GRADIENT 和
Time of Update: 2013-12-11
Android常見的布局形式有如下幾種:1:視圖組件(VIEW)在android當中View類是最基本的一個UI類,基本上所有進階的UI組件都繼承這個類。一個View在螢幕上佔據了一塊矩形地區,它負責渲染這個矩形地區,也可以處理這塊矩形地區發生的事件,並且可以設定該塊地區是否可見,以及擷取焦點等操作。2:視圖容器組件(ViewGroup)一個ViewGroup對象是一個Android.view.ViewGroup的執行個體,他負責添加進ViewGroup的這些view進行布局,注意的是一個Vie
Time of Update: 2013-12-11
Android中可以用WebView來訪問http和https的網站,但是預設訪問https網站時,假如認證不被Android承認,會出現空白頁面,且不會有任何提示資訊,這時我們必須加多一些配置。此方法只針對2.1版本以上的Android。1 package me.gevin;2 3 import android.net.http.SslError;4 import android.os.Bundle;5 import
Time of Update: 2013-12-11
本章跟上篇文章的區別在於我的通訊錄表徵圖上增加顯示了有多少連絡人。mainpage.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
Time of Update: 2013-12-11
一般切換頁面,通過Intent,startActivity可以實現,但系統建立Activity是非常耗時的,如果對切換畫面時間有要求,只能用setContentView在同一activity下切換頁面,這樣做切換快,但會增加程式邏輯控制的難度。在工業產品中,任何一個參數都是參與競爭的籌碼,開機時間、畫面切換時間等都是重要衡量因素。一般切換頁面的時間在150ms以上,使用者就會有反應,也就是說眼睛可以分辨,要等一小下才能看到跳轉的頁面。
Time of Update: 2013-12-11
這次下載4.0.3的源碼,苦於TI的官網下載太坑人,下載他的ICS_devkit到99.9%就停止了(4個多G下載了3次)。所以只好使用repo(管理android源碼倉庫的指令碼)來完成下載。這個下載是蠻痛苦的4個多G的.git,下載一個晚上是必須的。好了說說這次我的下載步驟吧:吸取前期的教訓,使用指令碼load_Android.sh:#!/bin/shecho "download Android4.0.3"./.repo/repo/repo
Time of Update: 2013-12-11
有時候我們可能會用到時時的監聽EditText輸入字元的時時監聽,監聽字元的個數,做一些Regex的處理等。如下方法可以實現:我做的是時時的把EditeText輸入的資料同步到TextView上布局檔案:[html]<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
Time of Update: 2013-12-11
如果需要在文字框中輸入一個例表,在輸入列表中每個元素時希望都有提示可以選擇,此前的AutoCompleteTextView只支援輸入第一個元素時提供提示下拉框, 這時可以藉助MultiAutoCompleteTextView ,MultiAutoCompleteTextView為AutoCompleteTextView的子類,它可以支援匹配輸入字串的子串,子串由分隔字元(可以通過setTokenizer
Time of Update: 2013-12-11
直接上代碼:[java]/** * 截屏 * @param v 視圖 * @param filePath 儲存路徑 */ private void getScreenHot(View v, String
Time of Update: 2013-12-11
Android xml風格和主題檔案的編寫,是涉及到整個程式介面美觀的因素之一。較好的應用風格和主題,可以實現美觀而統一的介面,這就猶如Web開發中的CSS。Styles和Themes都是資源,存放在res/values
Time of Update: 2013-12-11
SimpleCursorAdapter 的建構函式如下public SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to)context: context對象,可以使用activity。layout: layout 資源ID simple_gallery_item.xmlcursor: cursor對象,本例為通訊錄cursor.from: 需要顯示的列名數組to: 列對應的View
Time of Update: 2013-12-11
先上代碼:[java]Intent intent = new Intent(Intent.ACTION_REBOOT); intent.setAction(Intent.ACTION_REBOOT); intent.putExtra("nowait", 1); intent.putExtra("interval", 1); intent.putExtra("window",
Time of Update: 2013-12-11
[java] * 設定相機的預覽角度,在2.2以上可以直接使用setDisplayOrientation * * @param orientation 相機的預覽角度 */ private void setDisplayOrientation(int orientation) { Method setCameraDisplayOrientation; &