Android 天气APP(二十八)地图搜索定位

本文详细介绍了在Android天气APP中实现地图搜索定位的功能。通过展示如何处理搜索布局的展开和收缩,以及监听输入法键盘的搜索操作,实现了用户输入城市名后在地图上定位的功能。同时,文章涵盖了屏幕宽度的获取、dp与px单位转换、过渡动画的使用,以及自定义动画效果。此外,还讨论了如何在搜索布局与地图底部控件之间进行交互,确保良好的用户体验。
摘要由CSDN通过智能技术生成

还是比较简单的,然后进入到MapWeatherActivity

ImageView ivSearch;//搜索图标

@BindView(R.id.ed_search)

EditText edSearch;//搜索输入框

@BindView(R.id.iv_close)

ImageView ivClose;//关闭图标

@BindView(R.id.lay_search)

RelativeLayout laySearch;//搜索布局

定义一个控制变量

private AutoTransition autoTransition;//过渡动画

private Animation bigShowAnim;//放大显示

private Animation smallHideAnim;//缩小隐藏

private int width;//屏幕宽度

private boolean isOpen = false;//顶部搜索布局的状态

然后在点击方法中增加需求点击的控件id

在这里插入图片描述

因为展开之后是不能设置固定的宽度,所以需要获取屏幕的宽度,在initView方法中写入

//获取屏幕宽高

WindowManager manager = getWindowManager();

DisplayMetrics metrics = new DisplayMetrics();

manager.getDefaultDisplay().getMetrics(metrics);

width = metrics.widthPixels; //获取屏幕的宽度 像素

而屏幕的宽度是px又需要转换为dip,所以要写转换的方法;

// dp 转成 px

private int dip2px(float dpVale) {

final float scale = getResources().getDisplayMetrics().density;

return (int) (dpVale * scale + 0.5f);

}

// px 转成 dp

private int px2dip(float pxValue) {

final float scale = context.getResources().getDisplayMetrics().density;

return (int) (pxValue / scale + 0.5f);

}

然后写一个过渡动画的方法,会在展开和收缩的方法中调用

//过渡动画

@TargetApi(Build.VERSION_CODES.KITKAT)

private void beginDelayedTransition(ViewGroup view) {

autoTransition = new AutoTransition();

autoTransition.setDuration(500);

TransitionManager.beginDelayedTransition(view,autoTransition);

}

现在可以来写具体的关于点击展开和收缩的方法了。

/**

  • 展开

*/

public void initExpand() {

isOpen = true;

edSearch.setVisibility(View.VISIBLE);//显示输入框

ivClose.setVisibility(View.VISIBLE);//显示关闭按钮

LinearLayout.LayoutParams LayoutParams =

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值