(1) Launcher中預設Widget(即通過修改設定檔在Launcher上添加Widget)在Launcher目錄下的default_workspace.xml檔案中將需要添加的Widget編寫如下配置即可
[html]
<appwidget
launcher:packageName="com.android.music"
launcher:className="com.android.music.MediaAppWidgetProvider"
launcher:screen="3"
launcher:x="0"
launcher:y="0"
launcher:spanX="4"
launcher:spanY="1" />
<appwidget
launcher:packageName="com.android.music"
launcher:className="com.android.music.MediaAppWidgetProvider"
launcher:screen="3"
launcher:x="0"
launcher:y="0"
launcher:spanX="4"
launcher:spanY="1" />
其中的屬性就不多加以說明了,在部落格連結中可以看到,這裡要說明的是,添加widget後,編譯安裝後並沒有發現想要的效果,這時可將launcher.db這個資料庫刪除就可以看到效果了。
(2) Launcher上添加動畫特效,這篇文章大可不看,不過我在此推薦過的一個Gif處理軟體可以供參考,Ulead GIF Animator 5 ,這個工具可將gif圖片處理成單張圖片,以及製作gif圖片
(3) 全螢幕顯示(隱藏狀態列)的方式,主要是以下程式碼片段
[java]
// 2.3上可用,ics已經不可用了
WindowManager.LayoutParams attrs = getWindow().getAttributes();
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN; // 全螢幕顯示
//attrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN); // 取消全螢幕顯示
getWindow().setAttributes(attrs);
// 2.3上可用,ics已經不可用了
WindowManager.LayoutParams attrs = getWindow().getAttributes();
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN; // 全螢幕顯示
//attrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN); // 取消全螢幕顯示
getWindow().setAttributes(attrs);
在ICS上若要隱藏狀態列也就是SystemUI,那是做不到的,為什麼呢?因為ICS去掉了返回菜單的硬按鍵,取而代之的是SystemUI上的幾個按鈕,如果能全屏隱藏,那麼一些流氓軟體就可放肆了,開機給啟動一個全螢幕顯示的應用程式,而你卻無法按菜單返回按鈕,看你怎麼辦,為了實際的需求,還是實現了這個功能,只是在點擊狀態列時可恢複狀態列模式,實現此功能只需要在Activity的Oncreate方法中添加如下代碼即可:
[java]
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
(4)Android資料共用及資料存放區方式。關於Android資料存放區的方式有好幾種,在這篇部落格中只介紹了SharedPreferences資料共用,通過兩個應用程式一個用來讀取一個用來寫資料的方式示範資料共用的簡單操作方式,很簡單。在這個系列的專欄中講會有一篇部落格專門用於介紹Android資料存放區的文章,敬請期待!
(5)Android向狀態列發送通知,即Notification的使用[java] view plaincopyprint?NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICAT ION_SERVICE);
Notification notification = new Notification();
notification.icon = R.drawable.ic_launcher;
notification.tickerText = "Notification";
notification.when = System.currentTimeMillis();
notification.setLatestEventInfo(this, "title", "content", null);
manager.notify(100, notification);
manager.cancel(100); // 清除制定id的通知
manager.cancelAll(); // 清除所有通知
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICAT ION_SERVICE);
Notification notification = new Notification();
notification.icon = R.drawable.ic_launcher;
notification.tickerText = "Notification";
notification.when = System.currentTimeMillis();
notification.setLatestEventInfo(this, "title", "content", null);
manager.notify(100, notification);
manager.cancel(100); // 清除制定id的通知
manager.cancelAll(); // 清除所有通知(6)更改Launcher抽屜表徵圖,這個較簡單,不介紹了,看部落格吧。
(7)Android StatusBar修改,這裡只是做一個簡單的背景修改。將背景修改為黑色後,由於時間顯示的顏色是黑色所以同時要將時間修改為白色或其他顏色。真是變態的需求!當然在2.1到2.3之間往往需要添加菜單、Home鍵等,這些網上都有,而且很全,不列舉了。
(8)Android擷取Google Weather資料並通過xml和JSON解析資料。文中有詳細的描述,關於XML資料的解析請參考東子哥的部落格,這裡有非常詳盡的講解
(9) Widget開發總結,介紹如何通過點擊Widget開啟Activity,如何更新介面等
(10) 使用感應器擷取資料,介紹各種感應器及使用方法
(11) Android靜默方式大量安裝和卸載應用程式,這部分api在Android4.0中有改變,文中的部落格是調用Android2.3實現的。
(12) Android測試功能,這篇部落格包括了Android中大多數api的提示和實現方式,非常有參考意義,通過實現測試功能讓我更瞭解Android英語開發。
(13) Launcher擴充(防Ipad Dockbar,HTC預覽圖,大量新增捷徑,啟用3D特效等)
(14) 給Launcher添加壁紙的方法
(15) Android相容性測試資料方法等介紹
(16) Activity生命週期詳解
(17) 如何在應用程式中顯示Widget
(18) Android加浮水印的方法及功能
(19) Android換膚功能實現
(20) Android論壇部落格學習推薦等
(21) ListView的拖動功能,支援刪除
(22) WebView的使用
(23) Android錄音功能
(24) Android串口編程原理和實現方式,這篇部落格的發表很多人都來問,提問的多數是一些基礎問題,這裡要說明的有以下幾點,這些原因可能導致你收不到資料或者顯示亂碼
(1) 應用程式的工程編碼必須改為UTF-8
(2) 串口傳輸速率必須設定正確
(3) 串口資料發送多數是16禁止進行發送的,發送要注意轉換
(4) 檢查你的裝置是否添加驅動以及方案是否支援你設定的傳輸速率,比如說有些方案,傳輸速率低就出現丟幀的現象而導致亂碼
(25)Android拍照功能,有些MID或者手機都有前後置網路攝影機,在做開發時,需要在前後網路攝影機進行切換,或者預設制定開啟前置還是後置網路攝影機的功能,這篇部落格中沒有涉及到前後網路攝影機的編碼,這裡簡單分享下
[java]
public void surfaceCreated(SurfaceHolder holder) {
int numCameras = Camera.getNumberOfCameras();
if (numCameras != -1) {
for (int i = 0; i < numCameras; i++) {
CameraInfo info = new CameraInfo();
Camera.getCameraInfo(i, info);
if (selectorCamera == 1) {
if (info.facing == CameraInfo.CAMERA_FACING_BACK) {
camera = Camera.open(i);
}
} else if (selectorCamera == 0) {
if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
camera = Camera.open(i);
}
}
}
}
try {
camera.setPreviewDisplay(holder);
} catch (IOException e) {
camera.release();
camera = null;
}
}
public void surfaceCreated(SurfaceHolder holder) {
int numCameras = Camera.getNumberOfCameras();
if (numCameras != -1) {
for (int i = 0; i < numCameras; i++) {
CameraInfo info = new CameraInfo();
Camera.getCameraInfo(i, info);
if (selectorCamera == 1) {
if (info.facing == CameraInfo.CAMERA_FACING_BACK) {
camera = Camera.open(i);
}
} else if (selectorCamera == 0) {
if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
camera = Camera.open(i);
}
}
}
}
try {
camera.setPreviewDisplay(holder);
} catch (IOException e) {
camera.release();
camera = null;
}
}
(26) Android結合WEBService服務開發物聯網相關的項目(一)(二),物聯網就是通過各種各樣的裝置收集各種有用的資料,Android可通過串口來外掛很多裝置,掃描磁頭,身份證讀卡機,等等,這篇文章其實是一個簡單的架構,在這個基礎上其實可以做很多工作了。
(27) Android串口裝置應用與Web互動功能,這裡講解了基本的原理和流程,是前兩篇部落格的升華
(28)Android開發之產生略試圖,點擊略縮圖顯示大圖功能
(29)制定應用程式預設語言的實現方法 www.2cto.com
(30)擷取系統出錯資訊,並通過郵件發送錯誤資訊,這個功能很友好,小米中就有這個功能
(31)在TextView中顯示圖片,其實Android Launcher上的表徵圖就是這樣做的。
(32)錄音功能,實現指標的擺動特效
作者:tangcheng_ok