高德地图添加类似手机百度地图屏幕下方弹出框
来源:互联网 发布:linux查看网卡流量 编辑:程序博客网 时间:2024/04/30 12:06
主要采用的是PopupWindow做的弹出框
首先 需要定义两个xml动画:push_buttom_in.xml 和 push_buttom_out.xml文件
代码:
push_buttom_in.xml:
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="500" android:fromYDelta="100%p" android:toYDelta="0" /></set>
push_bottom_out.xml:
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="500" android:fromYDelta="0" android:toYDelta="50%p" /></set>第二步:需要自定义xml布局用于显示,自己修改的样式可以用于参考
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="130dp" android:background="#ffffff"> <LinearLayout android:id="@+id/id_pop_layout" android:layout_width="match_parent" android:layout_height="130dp" android:orientation="vertical" > <TextView android:id="@+id/agent_name" android:layout_marginLeft="14dp" android:layout_marginRight="14dp" android:layout_marginTop="11dp" android:layout_width="match_parent" android:layout_height="24dp" android:textSize="16sp" android:textColor="@color/black_one"/> <TextView android:id="@+id/agent_addr" android:layout_marginLeft="14dp" android:layout_marginRight="14dp" android:layout_marginTop="2dp" android:layout_width="match_parent" android:layout_height="48dp" android:textSize="15sp" android:textColor="@color/black_two"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <LinearLayout android:layout_marginTop="9dp" android:id="@+id/check_LL" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" > <ImageView android:layout_marginLeft="30dp" android:layout_width="17dp" android:layout_height="18dp" android:scaleType="centerCrop" android:src="@drawable/inforwindow_check"/> <TextView android:layout_marginLeft="9dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/inforwindow_check" android:textSize="15sp" android:textColor="@color/black_one" /> </LinearLayout> <LinearLayout android:layout_marginTop="9dp" android:id="@+id/warning_LL" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" > <ImageView android:layout_marginLeft="30dp" android:layout_width="19dp" android:layout_height="18dp" android:scaleType="centerCrop" android:src="@drawable/inforwindow_warning"/> <TextView android:layout_marginLeft="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/inforwindow_warning" android:textSize="15sp" android:textColor="@color/black_one"/> </LinearLayout> <LinearLayout android:layout_marginTop="9dp" android:id="@+id/more_LL" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" > <ImageView android:layout_marginLeft="30dp" android:layout_width="19dp" android:layout_height="18dp" android:scaleType="centerCrop" android:src="@drawable/inforwindow_more"/> <TextView android:layout_marginLeft="8dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/inforwindow_more" android:textSize="15sp" android:textColor="@color/black_one"/> </LinearLayout> </LinearLayout> </LinearLayout></LinearLayout>第三步:创建CustomPopupWindow.java继承PopupWindow 重写里面的方法代码如下:public class CustomPopupWindow extends PopupWindow implements View.OnClickListener { private View check; private View warning; private View more ; private TextView name; private TextView addr ; private OnItemClickListener mListener; private View mPopView; public CustomPopupWindow(Context context) { super(context); // TODO Auto-generated constructor stub init(context); setPopupWindow(); check.setOnClickListener(this); warning.setOnClickListener(this); more.setOnClickListener(this); } /** * 初始化 * * @param context */ private void init(Context context) { LayoutInflater inflater = LayoutInflater.from(context); //绑定布局 mPopView = inflater.inflate(R.layout.person_view, null); check = mPopView.findViewById(R.id.check_LL); warning = mPopView.findViewById(R.id.warning_LL); more = mPopView.findViewById(R.id.more_LL); name = mPopView.findViewById(R.id.agent_name); addr = mPopView.findViewById(R.id.agent_addr); } /** * 设置窗口的相关属性 */ @SuppressLint("InlinedApi") private void setPopupWindow() { this.setContentView(mPopView);// 设置View this.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);// 设置弹出窗口的宽 this.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);// 设置弹出窗口的高 this.setFocusable(true);// 设置可弹出窗口 this.setAnimationStyle(R.style.mypopwindow_anim_style);// 设置动画 this.setBackgroundDrawable(new ColorDrawable(0x00000000));// 设置背景透明 mPopView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int height = mPopView.findViewById(R.id.id_pop_layout).getTop(); int y = (int) event.getY(); if (event.getAction() == MotionEvent.ACTION_UP) { if (y < height) { dismiss(); } } return true; } }); } /** * 修改文本 */ public void setName(String agentname) { name.setText(agentname); } public void setAddr(String address) { addr.setText(address); } /** * 定义一个接口,公布出去 在Activity中操作按钮的单击事件 */ public interface OnItemClickListener { void setOnItemClick(View v); } public void setOnItemClickListener(OnItemClickListener listener) { this.mListener = listener; } @Override public void onClick(View v) { if (mListener != null) { mListener.setOnItemClick(v); } }}
第四步:在mainActivity里面调用
代码:只贴相关的一部分 CustomPopupWindow以接口引入
//marker单击事件@Overridepublic boolean onMarkerClick(Marker marker) { for (int i=0;i<mList.size();i++){ if (marker.equals(mList.get(i))) { if (aMap != null) { marker.setInfoWindowEnable(false); jumpPoint(marker); mPop = new CustomPopupWindow(this); mPop.setOnItemClickListener(this); mPop.setName(title[i]); mPop.setAddr(addrlst.get(i)); mPop.showAtLocation(MainActivity.this.findViewById(R.id.map), Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 0); } } }
阅读全文
0 0
- 高德地图添加类似手机百度地图屏幕下方弹出框
- 实现类似百度地图-添加到主屏幕的功能
- 关于手机地图api【百度/高德/百度转高德】
- iOS 跳转到地图后导航(高德地图,百度地图,腾讯地图,苹果手机原生的地图)
- 手机地图哪家强?高德地图和百度地图三大基础评测
- 百度地图弹出自定义框
- ios 一步一步学会自定义地图吹出框(CalloutView)-->(百度地图,高德地图,google地图)
- ios 一步一步学会自定义地图吹出框(CalloutView)-->(百度地图,高德地图,google地图)
- ios 一步一步学会自定义地图吹出框(CalloutView)-->(百度地图,高德地图,google地图)
- ios 一步一步学会自定义地图吹出框(CalloutView)-->(百度地图,高德地图,google地图)
- ios 自定义地图吹出框(CalloutView)-->(百度地图,高德地图,google地图)
- ios 一步一步学会自定义地图吹出框(CalloutView)-->(百度地图,高德地图,google地图)
- 判断手机是否安装高德/百度地图
- 百度地图定位,高德地图定位
- 初识高德地图和百度地图
- 高德地图vs百度地图
- 调用高德地图、百度地图客户端
- GMap.Net添加百度和高德地图瓦片源
- iOS集成环信推送,最详细流程(证书创建、环信集成、测试)
- PHP生成唯一ID
- resteasy统一的异常处理handler
- Ubuntu 16.04.1下修改MySql默认编码
- JAVA基础--继承、访问控制
- 高德地图添加类似手机百度地图屏幕下方弹出框
- Azure虚拟机设置静态IP
- Spring MVC实现上传文件报错解决方案
- shiro安全框架
- 结构体转字符串
- JAVA基础--抽象类和接口
- 动态库知识小记
- java系统高并发解决方案(转载)
- mysql 5.6 升级 mysql 5.7