上一篇文章,主要將如何UI設計器設計TableLayout + TableRow,由於實際應用中,經常需要在代碼裡往TableLayout添加資料(9宮圖也可以用TableLayout做出來 ),本文就是介紹這方面的簡單使用方法。 main.xml的代碼如下,用到TableLayout的ID為TableLayout01: view plaincopy to clipboardprint?<?xml version="1.0"
上次簡單地介紹了AudioRecord和AudioTrack的使用,這次就結合SurfaceView實現一個Android版的手機類比訊號示波器(PS:以前也講過J2ME版的手機示波器)。最近物聯網炒得很火,作為手機軟體開發人員,如何在不修改手機硬體電路的前提下實現與第三方感應器結合呢?麥克風就是一個很好的ADC介面,通過麥克風與第三方感應器結合,再在軟體裡對類比訊號做相應的處理,就可以提供更豐富的感測化應用。先來看看本文程式啟動並執行(螢幕錄影速度較慢,真機實際運行起來會更加流暢): 
前面介紹了怎麼樣配置編譯環境、編譯代碼,那麼現在就開始把編譯出來的目標檔案寫到開發板裡運行了,以便確認整個系統是可以成功啟動並執行。一個完整的Android系統至少由三部分組成,分別是bootloader、kernel、rootfs,這與典型的linux系統的結構是一致的。下面介紹如何燒寫一個完整的Android作業系統。bootloader、kernel、rootfs的鏡像最後都要燒在nandflash下,因此先瞭解一下nandflash的分區情況以避免出現前後覆蓋的情況:分區名稱
android系統的初始化過程是從那裡開始呢?它在載入linux基本核心後,就開始運行一個初始化進程,叫做init進程,那麼怎麼樣知道它是載入init進程的呢?難道上天就註定的嗎?呵呵,不是的,原來是從android載入linux核心時,就設定了下面的參數:Kernel command line: noinitrd root=/dev/nfs console=ttySAC0 init=/init nfsroot=192.168.1.103:/nfsboot ip=192.168.1.20:192
當初遇到這個bug,是不週期性低機率出現,最後找到一個比較容易重現的步驟:啟動系統然後進google + 建立一個帳號(注意是建立一個帳號) 沒幾步就重啟了這個BUG,一開始追蹤也是無頭緒的,在這個bug出現時,系統的debuggerd還是有些問題,pt_regs設定的和核心對應不上,tombstone的資訊完全無用,core dump功能也是無法使用,唯一的線索就是一點點logcat的trace, trace如下:D/OpenGLRenderer( 2021):
aidl這裡就不加累述它的概念定義等等,免得長篇大幅。下面介紹的是我第一次使用aidl成功與service通訊的一個例子:1.在項目包下建立一個IInfo.aidl,並在其中添加你要調用的方法,格式和java中介面一樣。01package com.android.server; 02 03interface IInfo {04 boolean start();05 void stop();06
釋放MediaPlayer MediaPlayer可能消耗大量的系統資源.因此你應該總是採取一些額外的措失來確保在一個MediaPlayer執行個體上不會掛起太長的時間.當你用完MediaPlayer時,你應該總是調用release()來保證任何分配給MediaPlayer的系統資源被正確地釋放.例如,如果你正在使用MediaPlayer並且你的activity收到了一個對onStop()的調用,你必須釋放MediaPlayer,因為當你的activtiy不再與使用者互動時繼續保持MediaP
看到這個例子的標題RoundRects,我的第一感覺是介紹RoundRectShape, 開啟例子看了代碼卻是使用GradientDrawable來實現的。GradientDrawable 支援使用漸層色來繪製圖形,通常可以用作Button或是背景圖形。GradientDrawable允許指定繪製圖形的種類:LINE,OVAL,RECTANGLE或是RING ,色彩坡形支援LINEAR_GRADIENT,RADIAL_GRADIENT 和
(10:31)(2012-07-26 10:31) , 已有36次閱讀 共0個評論 2011-07-25 10:29:15在多裝置(模擬器)時,想要直接用logcat查看其中一台的狀態,或者直接把應用安裝到目標裝置上時,需要指定裝置號。adb devices這個指令可以得到當前裝置的序號(serialNumber)。比如一個模擬器通常是 emulator-5554在adb的指令後面加上參數 -s <serialNumber> 比如 -s
本章跟上篇文章的區別在於我的通訊錄表徵圖上增加顯示了有多少連絡人。mainpage.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
[java]/*** 設定資料使用狀態 需要 簽名 系統 可以根據 變化* @param true 為可用 false為 不可用* @return 0為 成功 -1為失敗*/ private int setMobileDataEnabled(Context context, boolean flag) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.
一般切換頁面,通過Intent,startActivity可以實現,但系統建立Activity是非常耗時的,如果對切換畫面時間有要求,只能用setContentView在同一activity下切換頁面,這樣做切換快,但會增加程式邏輯控制的難度。在工業產品中,任何一個參數都是參與競爭的籌碼,開機時間、畫面切換時間等都是重要衡量因素。一般切換頁面的時間在150ms以上,使用者就會有反應,也就是說眼睛可以分辨,要等一小下才能看到跳轉的頁面。
這次下載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
有時候我們可能會用到時時的監聽EditText輸入字元的時時監聽,監聽字元的個數,做一些Regex的處理等。如下方法可以實現:我做的是時時的把EditeText輸入的資料同步到TextView上布局檔案:[html]<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
AIDL(AndroidInterface
網上查了不少Gallery停止監聽位置的方法,都是通過起線程然後睡眠來判斷,我覺得這樣沒必要開線程,耗費資源,同意的舉手。偶然看圖庫源碼的時候看見一段代碼,packages\apps\Gallery\src\com\android\camera\ViewImage.java 1<strong>private void scheduleDismissOnScreenControls() {2
Android 系統提供了很多功能強大的UI組件,包括Button,TextView, EditText, ListView, CheckBox, RadioButton, Gallery, Spinner ,AutoCompleteTestView 等以及LinerLayout, FrameLayout ,RelativeLayout
上類使用自訂的ExpandableListAdapter使用數組來定義Expandable list 的group 和 childern. 為ExpandableListAdapter之間的繼承關係 CursorTreeAdapter 支援使用一系列的Cursors 作為ExpandableListView 的資料來源,最上層的一個Cursor定義為Expandable的group ,其它的Cursor可以通過getChildernCursor為特定的Group定義其子Item。
Android xml風格和主題檔案的編寫,是涉及到整個程式介面美觀的因素之一。較好的應用風格和主題,可以實現美觀而統一的介面,這就猶如Web開發中的CSS。Styles和Themes都是資源,存放在res/values
前面介紹Android ApiDemos樣本解析(97):Views->Animation->Push 時用到了ViewFlipper ,ViewFlipper 和ViewSwitcher 都是ViewAnimator 的子類,ViewAnimator (FrameLayout的子類)提供了不同View之間切換時的動畫效果支援,應為ViewAnimator