1. 程式人生 > >Android自學筆記---模擬百度地圖

Android自學筆記---模擬百度地圖

安裝apk到虛擬機器

若Android SDK安裝路徑為e盤,現將apk放入E:\android\android-sdk-windows\tools資料夾中

Win+R 在cmd命令下輸入e:回車

Cd   android\android-sdk-windows\tools

adb   install    name.apk

(顯示success即可)

Alt+/檢視控制元件屬性

<!--  -->如何快捷輸入:Ctrl+shift+/

加建構函式:右擊-source-generate constructors fromsuperclass

程式碼的抽取Shift+Alt+M

文字最好寫到

res-value-string(選中按鈕在右邊有個)

R檔案在gen目錄下自動生成

Toast.makeText(MainActivity.this, "bt2要執行的邏輯",1).show();//這個可以實現出現一兩秒的提示

Log.i("tog", "父類的onclick事件");//列印日誌

v.setAlpha(0.5f);// 改變透明度

範圍單位:

px畫素值(一般不用因為不能根據解析度改變)

sp(顯示文字時多用)

dp=dip(最常用這個)一般寫成dp

Android的四大主鍵:Activity,Service,BroadcastReceiver,ContentProvider

Activity:onCreate()→onStart()→onResume()→onPause()→onStop()→onDestroy()


TextView顯示文字框控制元件

         android:id—控制元件的id

         android:layout_width控制元件的寬度

         android:layout_height控制元件的高度

android:singleLine="true"只有一行

         ……

Wrap_content 包裹實際文字內容

Match_parent 當前控制元件鋪滿整個父類容器—2.3api之後新增的屬性值

Fill_parent 當前控制元件鋪滿整個父類容器—2.3api之前新增的屬性值

EditText輸入文字框

         android:id—控制元件的id

         android:layout_width控制元件的寬度

         android:layout_height控制元件的高度

         ……

         android:hint輸入提示文字

android:inputType輸入文字型別

ImageView顯示圖片的控制元件

         android:src=””   內容影象(例:顯示一個logo)

         android:background背景圖片還可以設定顏色

Button按鈕

         Android:id

……

點選按鈕產生事件,有text屬性

ImageButton按鈕

         Android:id

……

點選按鈕產生事件,有src屬性android:src=”@drawable/ic_launcher”(圖片名ic_launcher

onClick事件(所有控制元件都有)

1、初始化當前所需要的控制元件,如何初始化一個控制元件

Button的名=(Button)findViewById(R.id.button1);

2、設定Button的監聽,通過監聽實現點選Button要實現的事情

(1)匿名內部類實現:loginButton.setOnClickListener(newOnClickListener() {});

(2)獨立類的實現:外部類,可以減少程式碼冗餘

bt3.setOnClickListener(new myonclicklistener(){}

class myonclicklistener implements OnClickListener{}

(3)實現介面的方式來實現:

public class MainActivity extends Activity implementsOnClickListener{

imgbt.setOnClickListener(this);

}

AutoCompleteTextView自動搜尋

動態匹配輸入內容,如百度搜索引擎當輸入文字時,可以根據內容顯示匹配的熱門資訊。

Android:completionThreshold=設定輸入多少字元時自動匹配

//(1)初始化控制元件

                   a=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);

                   //(2)需要一個介面卡

                   //(3)初始化資料來源--去匹配文字框輸入的內容

                   //(4)將adpter與當前AutoCompleteTextView繫結

                   ArrayAdapter<String>adapter=new ArrayAdapter<String>(this,

                                     android.R.layout.simple_list_item_1,res);

                   a.setAdapter(adapter);

multAutoCompleteTextView多值自動搜尋

可支援選擇多個值(在多次輸入的情況下),分別用分隔符分開,並且在每個值選中的時候再次輸入值時會自動去匹配,可用在發簡訊,發郵件時選擇聯絡人這種型別

Android:completionThreshold=設定輸入多少字元時自動匹配

Mtxt.setTokenizer(new multAutoCompleteTextView.comma)

(1)(2)(3)(4)(5)設定分隔符

ToggleButton=switch開關

選中和未選中狀態,並且需要為不同狀態設定不同顯示文字

Android:checked=“true”

Android:textoff=“關”

Android:texton=“開”

public void onCheckedChanged(CompoundButtonbuttonView, boolean isChecked) {

                   //當tb被點選的時候,當前方法被執行

                   img.setBackgroundResource(isChecked?R.drawable.on:R.drawable.off);}

CheckBox:複選框(選中之後可取消)

兩種狀態:true和false

屬性:android:checked=“false”/“true”

         Android:text=“男”/“女”(單選或多選)

RadioGroup

是RadioButton的集合,提供多選一機制RadioButton(選中之後不可變)

Android:orientation={“vertical”垂直排布“horizontal”水平排布}

linearLayout線性佈局

android:orientation=“vertical” 垂直排布“horizontal”水平排布

android:gravity= {”center”水平垂直都居中 “center_vertical垂直居中”,center_horizontal水平居中”right”子類控制元件位於當前佈局的右邊”樂left”左”bottom”下面}

子類控制元件在linearlayout的屬性:android:layout_gravity=”bottom”指本身在當前父類容器的XY的一個位置

         Android:layout_weight=”1”指本身控制元件佔當前父類容器的比例

RelativeLayout 相對佈局子控制元件之間的相對位置(可隨意擺放)

Android:layout_alignParenrLEft=”true”子類控制元件相對當前父類容器靠左邊

Android:layout_alignParenrTop=”true”……靠上邊

Android:layout_marginLeft=”41dp” ……左邊的距離

Android:layout_centerInParent=”true”……及水平居中又垂直居中

Android:layout_centerHorizontal=”true”……水平居中

Android:layout_centervertical=”true”……垂直居中

FrameLayout幀佈局

所有子控制元件不能被指定放置的位置,統統放於這塊區域的左上角,並且後面的控制元件直接覆蓋在前面的控制元件之上。

AbsoluteLayout絕對佈局(座標佈局)

由於絕對定位的適應性會比較差,在螢幕的適配上有缺陷

TableLayout表格佈局

模型以行列的形式管理子控制元件,每一行為一個tablerow的物件

Android:collapseColumns=”1,2”隱藏從0開始的索引列,列直接必須用逗號隔開

Android:shrinkColumns=””收縮從0開始的索引列。當可收縮的列太寬不會被擠出螢幕*代表收縮所有列

Android:stretchColumns=””拉伸從0開始的索引列,以填滿剩下的多餘空白空間

區域性屬性:android:layout_column=“1”該控制元件顯示在第二列

                            Android:layout_span=“2”該控制元件佔據第二列

Intent頁面跳轉來協助完成Android各個元件之間的通訊

startActivity(intent)

startActivityForResult(intent,requestCode)

APP簽名和打包

Package Name


-------------------------------------------------------------------------------------------------------------------------------

1、將百度地圖引入到app中

         根據“百度地圖API”中的提示做

         MapStatusUpdatemsu = MapStatusUpdateFactory.zoomTo(15.0f);

         mBaiduMap.setMapStatus(msu);//比例顯示為15.f 標尺在500米左右

2、引入定位功能,集合方向感測器實現方向定位

         1)定位功能

         LocationClient

LocationClientOption進行定位的一些設定

BDLocationListener監聽器

BDLocation

2)自定義圖示

Bitmaodedcriptor

3)引入方向感測器

SensorManager-Sensor

BDLocationListener對方向進行設定

3、模式的切換

MyLocationConfigurationconfig=new

MyLocationConfiguration(mLocationMode,true,mIconLocation);

         mBaiduMap.setMyLocationConfigeration(config);//圖示設定完畢                                                                                         

4、新增覆蓋物、覆蓋物點選的處理

         Marker

         OverlayOptions設定位置

         BaiduMap.setOnMarkerClickListener

         InfoWindow點選覆蓋物時在地圖上顯示名稱

         BaiduMap.showInfoWindow

         BaiduMap.hideInfoWindow