(android地图开发) 高德地图自定义对话框

你猜 阅读:614 2021-04-01 10:20:32 评论:0

截图效果:

 

布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"  
    android:orientation="horizontal" 
    android:background="#ffffff" 
    > 
    <!--卫星地图  --> 
    <ImageButton 
        android:id="@+id/satellite" 
        android:layout_weight="1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:src="@drawable/main_map_mode_satellite_normal"         
        >    
    </ImageButton> 
    <!--平面地图  --> 
 
    <ImageButton 
        android:id="@+id/plain" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:src="@drawable/main_map_mode_plain_normal" /> 
 
    <!--3d地图  --> 
        <ImageButton 
        android:id="@+id/d3" 
        android:layout_weight="1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:src="@drawable/main_map_mode_3d_normal"         
        >    
    </ImageButton> 
 
</LinearLayout>


自定义对话框覆写Activity的oncreatDialog()方法------核心代码

//自定义窗口(覆写 activity的oncreatedialog()) 
	@Override 
	public Dialog onCreateDialog(int id) { 
		// TODO Auto-generated method stub 
		AlertDialog.Builder builder =new AlertDialog.Builder(this);   
		final AlertDialog customDialog; 
		 
		 LayoutInflater inflater = getLayoutInflater();    
		 View layout = inflater.inflate(R.layout.dialog, null); 
		 builder.setTitle("地图类型选择"); 
		 builder.setView(layout); 
		 customDialog=builder.create(); 
		 //相关点击事件处理 
		 //卫星地图 
		 ImageButton satellite=(ImageButton) layout.findViewById(R.id.satellite); 
		 satellite.setOnClickListener(new OnClickListener(){ 
 
			@Override 
			public void onClick(View v) { 
				// TODO Auto-generated method stub 
				tager_map_type=0; 
				Message message=new Message(); 
				Bundle bundle=new Bundle(); 
				bundle.putInt("target_map_type", tager_map_type); 
				message.setData(bundle); 
				message.what=2; 
				handler.sendMessage(message); 
				//自定义对话框关闭 
				customDialog.cancel(); 
			} 
			  
		 }); 
		 //平面地图 
		 ImageButton plain=(ImageButton) layout.findViewById(R.id.plain); 
		 plain.setOnClickListener(new OnClickListener(){ 
 
			@Override 
			public void onClick(View v) { 
				// TODO Auto-generated method stub 
				tager_map_type=1; 
				Message message=new Message(); 
				Bundle bundle=new Bundle(); 
				bundle.putInt("target_map_type", tager_map_type); 
				message.setData(bundle); 
				message.what=2; 
				handler.sendMessage(message); 
				//自定义对话框关闭 
				customDialog.cancel(); 
			} 
			  
		 }); 
		 //3d地图 
		 ImageButton d3=(ImageButton) layout.findViewById(R.id.d3); 
		 d3.setOnClickListener(new OnClickListener(){ 
 
			@Override 
			public void onClick(View v) { 
				// TODO Auto-generated method stub 
				tager_map_type=2; 
				Message message=new Message(); 
				Bundle bundle=new Bundle(); 
				bundle.putInt("target_map_type", tager_map_type); 
				message.setData(bundle); 
				message.what=2; 
				handler.sendMessage(message); 
				//自定义对话框关闭 
				customDialog.cancel(); 
			} 
			  
		 });		 
		 
		return customDialog; 
	}


MapView浮点按钮功能实现:

//是否显示路况信息标识 
		private boolean target_traffic=true; 
		//显示地图类型(0:卫星地图、1:平面地图、2:3d地图) 
		private int tager_map_type=1; 
	//功能代码的编写 
	public void params(){ 
		//交通类型 
		Button traffic=(Button) findViewById(R.id.traffic); 
		traffic.setOnClickListener(new OnClickListener(){ 
			@Override 
			public void onClick(View v) { 
				Message message=new Message(); 
				Bundle bundle=new Bundle(); 
				bundle.putBoolean("traffic",target_traffic); 
				message.setData(bundle); 
				message.what=1; 
			    handler.sendMessage(message);				 
			} 
			 
		}); 
		//地图类型(卫星地图、平面地图和三维地图) 
		Button type=(Button) findViewById(R.id.type); 
		type.setOnClickListener(new OnClickListener(){ 
			@Override 
			public void onClick(View v) { 
				//showDialog方法触发Activity的onCreateDialog(){可以自定义对话框样式} 
				 showDialog(0); 
				 
			} 
			 
		}); 
		 
	}


运行截图:

标签:Android
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号