1. 程式人生 > >2018-2019-2 20189203 移動平臺應用開發實踐第六周學習總結

2018-2019-2 20189203 移動平臺應用開發實踐第六周學習總結

方便 不同 技術 rest 接收 ttext 生命周期 androi linear

第23、24、25、26章學習

第23章 Android簡介

  • Android是一種多用戶的Linux系統。它快速達到巔峰的原因之一是,它使用Java作為編程語言。所有Android類和接口的文檔都可以從其官網站點找到。
  • Android主要有什麽特色呢,有以下幾個方面來體現:
    四大組件
    豐富的系統控件
    SQLite數據庫等持久化技術
    地理位置定位
    強大的多媒體
    傳感器

  - 四大組件
什麽是四大組件?分別是活動(Activity)、服務(Service)、廣播接收器(BroadCast Receiver)和內容提供器(Content Provider)。其中活動(Activity)就是Android應用程序中看得東西,也是用戶打開一個應用程序的門面,並且與用戶交互的界面,比較高調。服務(Service),則比較低調了,一直在後臺默默的付出,即使用戶退出了,服務仍然是可以繼續運行的。廣播接收器(BroadCast Receiver),則允許你的應用接收來自各處的廣播消息,比如電話、短信等,可以根據廣播名稱不同,做相應的操作處理,當然了, 除了可以接受別人發來的廣播消息,自身也可以向外發出廣播消息,自產自銷。內容提供器(Content Provider),則為應用程序之間共享數據提供了可能,比如你想要讀取系統電話本中的聯系人,就需要通過內容提供器來實現。

  • 豐富的系統控件
    Android系統為開發者提供了豐富的系統控件,我們可以編寫漂亮的界面,也可以通過擴展系統控件,自定義控件來滿足自我的需求,常見控件有:TextView、Buttion、EditText、一些布局控件等。
- 持久化技術
Android系統還自帶了SQLite數據庫,SQLite數據庫是一種輕量級、運算速度極快的嵌入式關系型數據庫。它不僅支持標準的SQL語法,還可以通過Android封裝好的API進行操作,讓存儲和讀取數據變得非常方便。

- 地理位置定位
移動設備和PC相比,地理位置定位是一大亮點,現在基本Android手機都內置了GPS,我們可以通過GPS,結合我們的創意,打造一款基於LBS的產品,是不是很酷的事情啊,再說,目前火熱的LBS應用也不是空穴來風的,不過在天朝,因為可惡的GFW,只能用些本土化的地圖API,比如百度地圖、高德地圖。要是哪天能用上大谷歌的地圖,那才是高大上啊。

- 強大的多媒體
Android系統提供了豐富的多媒體服務,比如音樂、視頻、錄音、拍照、鬧鈴等,這一切都可以在程序中通過代碼來進行控制,讓你的應用變得更加豐富多彩。

- 傳感器
Android手機中內置了多種傳感器,比如加速傳感器、方向傳感器,這是移動設備的一大特點,我們可以靈活地使用這些傳感器,可以做出很多在PC上無法實現的應用。

第24章 初識Android

學習Android開發工具的開發和使用。

第25章 活動

1.Activity類中定義了七個回調方法,覆蓋了生命周期的每一個環節
onCreate()方法:活動第一次創建的時候調用
onStart()方法:活動由不可見變為可見時調用
onResume()方法:活動準備好和用戶進行交互時調用
onPause()方法:準備去啟動或者恢復另一個活動時調用
onStop()方法:活動時完全不可見調用
onDestory()方法:活動銷毀之前調用
onRestart()方法:活動由停止狀態變為運行狀態之前調用

2.生存周期
完整生存期
活動在 onCreate() 方法和 onDestroy() 方法之間所經歷的,就是完整生存期。一般情況下,一個活動會在 onCreate() 方法中完成各種初始化操作,而在 onDestroy() 方法中完成釋放內存的操作。

可見生存期
活動在 onStart() 方法和 onStop() 方法之間所經歷的,就是可見生存期。在可見生存期內,活動對於用戶總是可見的,即便有可能無法和用戶進行交互。我們可以通過這兩個方法,合理地管理那些對用戶可見的資源。比如在 onStart() 方法中對資源進行加載,而在 onStop() 方法中對資源進行釋放,從而保證處於停止狀態的活動不會占用過多內存。
前臺生存期
活動在 onResume() 方法和 onPause() 方法之間所經歷的,就是前臺生存期。在前臺生存期內,活動總是處於運行狀態的,此時的活動是可以和用戶進行相互的,我們平時看到和接觸最多的也這個狀態下的活動。

第26章 UI組件

Toast可以顯示文本和圖片,用於顯示提示信息。

  • 顯示默認文本
Toast.makeText(getApplicationContext(),"Welecome",Toast.LENGTH_SHORT).show();

這個靜態函數會返回一個包含一個文本視圖的Toast對象,他有三個參數
1.第一個參數當前上下文環境可以使用getApplicationContext()//應用程序的上下文;或者this//當前對象上下文;
2.第二個參數需要顯示的文本內容;
3.第三個參數需要顯示的時間長短有兩個常量可以選擇Toast.LENGTH_SHORT和Toast.LENGTH_LONG;

  • 顯示圖片
    public void viewImg(View v){
            Toast toast=new Toast(this);//使用Toast的構造函數創建一個新的Toast對象,參數為當前上下文環境;
            ImageView imageView=new ImageView(this);//新建一個ImageView對象,用於顯示圖片;
            imageView.setImageResource(R.drawable.bz);//給imageView對象指定一個圖片;
            //註意在存放資源時圖片名稱全部小寫只能字母打頭;
            toast.setView(imageView);//setView函數用來設置視圖,這裏我們將剛才新建的imageView對象作為參數;
            toast.setDuration(Toast.LENGTH_LONG);//該函數用於設置顯示的時間長短,同樣的有兩個常量可以選擇;
            toast.show();//顯示視圖函數;
        }
  • 自定義顯示位置

自定義顯示位置需要使用setGravity(int gravity, int xOffset, int yOffset)函數;

該函數有三個參數:
1.第一個參數設置顯示位置使用Gravity類裏面的常量如Gravity.CENTER//居中顯示;
2.第二個參數x軸的偏移量;
3.第三個參數y軸的偏移量;

        public void viewImg(View v){
            Toast toast=new Toast(this);//使用Toast的構造函數創建一個新的Toast對象,參數為當前上下文環境;
            ImageView imageView=new ImageView(this);//新建一個ImageView對象,用於顯示圖片;
            imageView.setImageResource(R.drawable.bz);//給imageView對象指定一個圖片;
            //註意在存放資源時圖片名稱全部小寫只能字母打頭;
            toast.setView(imageView);//setView函數用來設置視圖,這裏我們將剛才新建的imageView對象作為參數;
            toast.setDuration(Toast.LENGTH_LONG);//該函數用於設置顯示的時間長短,同樣的有兩個常量可以選擇;
            toast.setGravity(Gravity.TOP,0,0);//設置顯示位置為頂部;
           toast.show();//顯示視圖函數;
        }
  • 顯示圖片加文本

有兩種方法可以直接新建一個布局放到Toast裏面也可以獲取到Toast的布局再添加一個圖片進去;
方法一新建一個布局:

        public void viewImgText(View v){
            Toast toast=new Toast(this);
            TextView textView=new TextView(this);//新建一個文本對象;
            textView.setText("Welcome");//設置文本內容;
            ImageView imageView=new ImageView(this);
            imageView.setImageResource(R.drawable.bz);
     
            LinearLayout layout=new LinearLayout(this);//新建一個線性布局;
            layout.setOrientation(LinearLayout.VERTICAL);//設置為垂直;
            layout.setGravity(Gravity.CENTER);//設置該布局中內容顯示的位置;
            layout.addView(imageView);//將圖片添加到線性布局中;
            layout.addView(textView);//將文本添加到線性布局中;
     
            toast.setView(layout);//設置要顯示的視圖為線性布局;
     
            toast.setGravity(Gravity.CENTER, 0, 0);//設置顯示位置
            toast.setDuration(Toast.LENGTH_LONG);//設置顯示時間
            toast.show();//顯示Toast對象;
        }

方法二獲取Toast的布局:

        public void viewImgText(View v){
            Toast toast=Toast.makeText(getApplicationContext(), "Welecome", Toast.LENGTH_LONG);
            ImageView imageView=new ImageView(this);
            imageView.setImageResource(R.drawable.bz);
     
            LinearLayout layout=(LinearLayout)toast.getView();//獲取Toast的布局;
            layout.setOrientation(LinearLayout.VERTICAL);//設置布局為垂直;
            layout.addView(imageView);//將圖片添加到布局中
     
            toast.setGravity(Gravity.CENTER, 0, 0);//設置顯示位置;
            toast.show();//顯示對象;
        }

2018-2019-2 20189203 移動平臺應用開發實踐第六周學習總結