android----popuwindow的使用,自定义的方式

原创 2016年08月30日 18:42:16

1自定义的popuwindow类

package com.dr.Custom.View;


import com.dr.UI.Activity.CityActivity;
import com.example.meituanbydr.R;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.PopupWindow;
import android.widget.TextView;


public class MyCityPopWindow extends PopupWindow {
TextView txt_changeCity;
View ppwView;
TextView txt_changeCityName;


public MyCityPopWindow(final Context context, OnClickListener onClick) {
ppwView = LayoutInflater.from(context).inflate(R.layout.popwindow_city,
null);


txt_changeCity = (TextView) ppwView
.findViewById(R.id.txt_groupBuy_ChangeCity);
  txt_changeCityName = (TextView) ppwView
.findViewById(R.id.txt_groupBuy_CurCityName);

// 取出"selectedCity"的值,并显示出来
SharedPreferences sharedPreference = context
.getSharedPreferences("selectedCity", Context.MODE_PRIVATE);
   String cityName = sharedPreference.getString("cityName", "未定位");


   txt_changeCityName.setText(cityName);

//txt_changeCity添加监听事件,跳转到城市列表界面
txt_changeCity.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

Intent intent = new Intent(context, CityActivity.class);
context.startActivity(intent);
dismiss();

}
});


// 窗体添加布局
this.setContentView(ppwView);
// 窗体高铺满
this.setWidth(LayoutParams.MATCH_PARENT);
// 窗体高自适应
this.setHeight(LayoutParams.MATCH_PARENT);


// 弹出窗体可点击
this.setFocusable(true);
// 弹出窗体动画效果
// this.setAnimationStyle(R.style.AnimBottom);
// this.setAnimationStyle(R.anim.push_bottom_out);
// 实例化一个ColorDrawable颜色为半透明
ColorDrawable dw = new ColorDrawable(0xb0000000);
// 弹出窗体的背景
this.setBackgroundDrawable(dw);


// ppwView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框
ppwView.setOnTouchListener(new OnTouchListener() {


public boolean onTouch(View v, MotionEvent event) {


int upper = ppwView.findViewById(R.id.ll_ppw_city).getTop();
int height = ppwView.findViewById(R.id.ll_ppw_city).getHeight();

int y = (int) event.getY();
if (event.getAction() == MotionEvent.ACTION_UP) {
if (y < upper || y> (upper+height)  ) {
dismiss();
}
}
return true;
}
});
}




}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android中自定义popuWindow和dialog

  • 2016年12月03日 15:12
  • 32.55MB
  • 下载

Android 平板中 自定义键盘(popuwindow) 居于屏幕左下方 仿微信的密码输入界面

Android 使用popuwindow自定义键盘,仿微信的密码输入界面

Android UI自定义Spinner下拉框(用popuwindow实现)

首页 » Android » Android UI自定义Spinner下拉框(用popuwindow实现) Android UI自定义Spinner下拉框(用popuwindow实现) 日...

Android 继承于PopuWindow的自定义弹出窗体

继承于PopuWindow的自定义弹出窗体

Android UI自定义Spinner下拉框(用popuwindow实现)

Android提供的Spinner可能会因为项目的需求而不能使用,这时候我们往往会自己定义一个。最近在做的项目遇到了这种情况,自己用PopuWindow定义了一个下拉框的样式,记录下来留着以后参考~先...
  • jdsjlzx
  • jdsjlzx
  • 2014年12月03日 22:33
  • 15187

Android自定义popuwindow嵌套listview

前言:先声明,项目源自csdn上,其他网站扒过去的请在csdn上搜索“Android自定义popuwindow嵌套listview”标题,下载也是一样!如果在其他网站上找到该篇文章来问我哪里可以下载的...

自定义popuwindow

  • 2013年10月29日 14:07
  • 940KB
  • 下载

分享一个自定义的popuwindow效果,高度适配

在很多项目中我们可能会遇到这种效果。现在很多的应用效果都需要做的炫些,比如天天静听效果很炫的,源码已经对外开放了,有兴趣的可以去研究下; 直接上代码: 1.布局文件: popwindow.xml...

关于弹窗:自定义PopuWindow和Toast

最近做项目要求有弹窗,效果如下 我想到popuWindow 但是有bug,就是弹出次数比较多的时候,它就不消失了。项目组iOS的小伙伴也被同样问题困扰,经讨论有两种解决思路: 1,如果pop....
  • iblade
  • iblade
  • 2016年05月20日 17:34
  • 681
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android----popuwindow的使用,自定义的方式
举报原因:
原因补充:

(最多只允许输入30个字)