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
文字最好寫到
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