編輯:關於Android編程
(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
本文實例為大家分享了Android自定義Behavior支持所有View ,供大家參考,具體內容如下一、實現效果圖這個右下角的FAB,動畫當然可以多種多樣,可以放在界面的
BaseAdapter的深度學習 博主工作了幾年,也用了幾年的ListView等AdapterView控件,但關於Adapter的一些問題並沒有深入下去,終
Android AIDL, Android進程機制通信機制,這裡就整理下AIDL 的知識,幫助大家學習理解此部分知識!什麼是 AIDLAIDL 全稱 Andr
前言:上篇中介紹OMX事件回調,從今天開始,走入Codec部分之OpenMAX框架裡。看下今天的Agenda如下:一張圖回顧音視頻同步 一張圖看清OpenMAX在Andr