android开发百度地图哪个API可以设置地图是否可以拖动?
邪恶少年 2015-05-31 06:24:27 想用个按钮来控制地图是否可以拖动,不知道有没有提供API。
还有另外一个问题就是关于marker的
动态添加了一个marker,marker是一个自定义view. 对view里面的添加监听是无效的,因为他是marker,点击的话只会触发百度的marker点击事件。我想让view里面不同的组件的监听都生效,该怎么做?
这是marker布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/park_info"
android:visibility="invisible" >
<ImageButton
android:id="@+id/to_phone"
android:layout_width="45dp"
android:layout_height="45dp"
android:background="#39B54A"
android:src="@drawable/phone" />
<Button
android:id="@+id/to_car_number"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:background="@drawable/client_popup_bg_xxhdpi" />
<Button
android:id="@+id/to_finish"
android:layout_width="45dp"
android:layout_height="45dp"
android:background="#2196F3"
android:text="完成"
android:textColor="#ffffff" />
</LinearLayout>
<ImageView
android:id="@+id/car"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/car"/>
</LinearLayout>
这是添加marker代码
LatLng latLng = new LatLng(d1, d2);
final LinearLayout linear = (LinearLayout) LayoutInflater.from(this).inflate(
R.layout.marker, null);//自定义布局文件
ImageButton btn_phone=(ImageButton) linear.findViewById(R.id.to_phone);
btn_phone.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(
"android.intent.action.CALL", Uri.parse("tel:"
+ mobile));
MainActivity.this.startActivity(intent);
}
});
Button car_number=(Button) linear.findViewById(R.id.to_car_number);
car_number.setText(carNumber);
Button button=(Button) linear.findViewById(R.id.to_finish);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Message message = MainActivity.this.handler.obtainMessage();
message.what = 500;
message.obj = jsonObject;
MainActivity.this.handler.sendMessage(message);
}
});
ImageView car=(ImageView) linear.findViewById(R.id.car);
car.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(MainActivity.this, "car被点击", Toast.LENGTH_SHORT).show();
//让所有恢复默认
for(String key:views.keySet()){
View view=views.get(key);
view.findViewById(R.id.park_info).setVisibility(View.INVISIBLE);
}
//让本个显示
linear.findViewById(R.id.park_info).setVisibility(View.VISIBLE);
}
});
BitmapDescriptor view = BitmapDescriptorFactory.fromView(linear);
MarkerOptions options = new MarkerOptions().icon(view).position(latLng);
Marker marker = (Marker) baidu_map.addOverlay(options);