Android实现底部d窗效果

Android实现底部d窗效果,第1张

概述本文实例为大家分享了Android实现底部d窗效果的具体代码,供大家参考,具体内容如下

本文实例为大家分享了AndroID实现底部d窗效果的具体代码,供大家参考,具体内容如下

源代码地址:https://github.com/luoye123/Box

东西很简单,我就直接亮代码了:

1、activity_main.xml

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:gravity="center" androID:ID="@+ID/ll_image"> <button androID:ID="@+ID/bt_select_image" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="选择图片" /></linearLayout>

2、MainActivity.java

public class MainActivity extends AppCompatActivity implements VIEw.OnClickListener { private SelectPicPopupWindow menuWindow; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); findVIEwByID(R.ID.bt_select_image).setonClickListener(this); } @OverrIDe public voID onClick(VIEw vIEw) { switch (vIEw.getID()) {  case R.ID.bt_select_image:  //Todo implement  selectimgs(); } } private voID selectimgs(){ menuWindow = new SelectPicPopupWindow(MainActivity.this,itemsOnClick); //设置d窗位置 menuWindow.showAtLocation(MainActivity.this.findVIEwByID(R.ID.ll_image),Gravity.BottOM | Gravity.CENTER_HORIZONTAL,0); } private VIEw.OnClickListener itemsOnClick = new VIEw.OnClickListener() { public voID onClick(VIEw v) {  menuWindow.dismiss();  switch (v.getID()) {  case R.ID.item_popupwindows_camera: //点击拍照按钮   break;  case R.ID.item_popupwindows_Photo: //点击从相册中选择按钮   break;  default:   break;  } } };}

3、关键代码:SelectPicPopupWindow.java

 **public class SelectPicPopupWindow extends PopupWindow {  private button item_popupwindows_camera,//d窗拍照按钮   item_popupwindows_Photo,//d窗从相册选择按钮   item_popupwindows_cancel;  //d窗取消按钮  private VIEw menuvIEw;  /**  * 上传图片*************************  * @param context  * @param itemsOnclick  */  public SelectPicPopupWindow(Activity context,VIEw.OnClickListener itemsOnclick){  super(context);  LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);  menuvIEw = inflater.inflate(R.layout.item_popupwindows,null);  item_popupwindows_camera = (button) menuvIEw.findVIEwByID(R.ID.item_popupwindows_camera); //拍照按钮  item_popupwindows_cancel = (button) menuvIEw.findVIEwByID(R.ID.item_popupwindows_cancel); //取消按钮  item_**popupwindows_Photo = (button) menuvIEw.findVIEwByID(R.ID.item_popupwindows_Photo); //图库按钮  /**   * 取消按钮销毁事件   */  item_popupwindows_cancel.setonClickListener(new VIEw.OnClickListener() {   public voID onClick(VIEw vIEw) {   dismiss();   }  });  item_popupwindows_camera.setonClickListener(itemsOnclick);  item_popupwindows_Photo.setonClickListener(itemsOnclick);  //设置SelectPicPopupWindow的VIEw  this.setContentVIEw(menuvIEw);  //设置SelectPicPopupWindow**d出窗体的宽  this.setWIDth(VIEwGroup.LayoutParams.FILL_PARENT);  //设置SelectPicPopupWindowd出窗体的高  //修改高度显示,解决被手机底部虚拟键挡住的问题 by黄海杰 at:2015-4-30  this.setHeight(VIEwGroup.LayoutParams.MATCH_PARENT);  //设置SelectPicPopupWindowd出窗体可点击  this.setFocusable(true);  //设置SelectPicPopupWindowd出窗体动画效果  //this.setAnimationStyle(R.style);  //实例化一个colorDrawable颜色为半透明  colorDrawable DW = new colorDrawable(0xb0000000);  //设置SelectPicPopupWindowd出窗体的背景  this.setBackgroundDrawable(DW);  //menuvIEw添加ontouchListener监听判断获取触屏位置如果在选择框外面则销毁d出框  menuvIEw.setontouchListener(new VIEw.OntouchListener() {   public boolean ontouch(VIEw vIEw,MotionEvent motionEvent) {   int height = menuvIEw.findVIEwByID(R.ID.ll_popup).gettop();   int y = (int) motionEvent.getY();   if (motionEvent.getAction() == MotionEvent.ACTION_UP){    if (y<height){    dismiss();    }   }   return true;   }  });  } }**

写的不好,请见谅,,下一期完成后期的工作!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Android实现底部d窗效果全部内容,希望文章能够帮你解决Android实现底部d窗效果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1146165.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存