Androidd出菜单阴影

Androidd出菜单阴影,第1张

概述我创建了这个d出菜单,但缺少背景阴影.我该如何添加一些?如果阴影只在左侧和底部,那将会很酷.这是一张图片:您可以​​看到d出窗口的颜色和工具栏下方活动的背景齐头并进.这是我的代码:活动片段publicvoidshowPopup(finalMenuItemmenuItem){Viewview=findView

我创建了这个d出菜单,但缺少背景阴影.我该如何添加一些?如果阴影只在左侧和底部,那将会很酷.

这是一张图片:您可以​​看到d出窗口的颜色和工具栏下方活动的背景齐头并进.

这是我的代码:

活动片段

public voID showPopup(final MenuItem menuItem) {        VIEw vIEw = findVIEwByID(R.ID.action_alarm);        LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);        VIEw popupVIEw = layoutInflater.inflate(R.layout.popup, null);        final ListVIEw ListVIEw = (ListVIEw) popupVIEw.findVIEwByID(R.ID.ListVIEw);        String[] functions = {getString(R.string.benachrichtigung), getString(R.string.benachrichtigungUm)};        final listadapter adapter = new CustomPopupAdapter(this, functions, ListVIEw);        ListVIEw.setAdapter(adapter);        ListVIEw.setonItemClickListener(new AdapterVIEw.OnItemClickListener() {            @OverrIDe            public voID onItemClick(AdapterVIEw<?> parent, VIEw vIEw, int position, long ID) {                TextVIEw tv = (TextVIEw) ListVIEw.getChildAt(1).findVIEwByID(R.ID.tvTime);                showTimePickerDialog(tv);            }        });        PopupWindow popupWindow = new PopupWindow(                popupVIEw,                VIEwGroup.LayoutParams.WRAP_CONTENT,                VIEwGroup.LayoutParams.WRAP_CONTENT);        popupWindow.setBackgroundDrawable(new BitmapDrawable());        popupWindow.setoutsIDetouchable(true);        popupWindow.showAsDropDown(vIEw);    }

popup.xml

<relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"        androID:layout_wIDth="match_parent"        androID:layout_height="match_parent"        androID:padding="5dp"        androID:background="@color/white">        <ListVIEw            androID:ID="@+ID/ListVIEw"            androID:layout_wIDth="wrap_content"            androID:layout_height="wrap_content">        </ListVIEw></relativeLayout>

编辑:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LolliPOP) {            popupWindow.setBackgroundDrawable(ContextCompat.getDrawable(this, R.drawable.shadow_192256));        } else {            popupWindow.setBackgroundDrawable(ContextCompat.getDrawable(this, R.drawable.shadow_192256));        }

解决方法:

前几天我遇到了同样的问题:)这就是我解决它的方法.以下链接将带您到一个网站,您可以随心所欲地生成阴影:)

http://inloop.github.io/shadow4android/

这是一个9补丁图片:)一旦完成,你所要做的就是:)

  display display = (yourActivity.getwindowManager().getDefaultdisplay();  Point size = new Point();  display.getSize(size);  int wIDth = size.x;  int height = size.y;  Resources resources = yourActivity.getResources();  int navigationbarHeight = 0;  int statusbarHeight = 0;  int resourceID = resources.getIDentifIEr("navigation_bar_height", "dimen", "androID");  if (resourceID > 0) {      navigationbarHeight = resources.getDimensionPixelSize(resourceID);   }  resourceID = resources.getIDentifIEr("status_bar_height", "dimen", "androID");  if (resourceID > 0) {       statusbarHeight = resources.getDimensionPixelSize(resourceID);            } popupWindow = new PopupWindow(yourActivity); popupWindow.setContentVIEw(yourlayout);            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LolliPOP) {                popupWindow.setBackgroundDrawable(resources.getDrawable(R.drawable.shadow, yourActivity.gettheme()));            } else {                popupWindow.setBackgroundDrawable(resources.getDrawable(R.drawable.shadow));            }            popupWindow.setWIDth(wIDth - 20);//20 is padding i have added 10 from right 10 from left            popupWindow.setHeight(height - (navigationbarHeight +40));            popupWindow.setoutsIDetouchable(true);            popupWindow.setFocusable(true);               popupWindow.showAtLocation(youractivityVIEw, Gravity.CENTER, 0, statusbarHeight);

多数民众赞成:)你完成了:)

总结

以上是内存溢出为你收集整理的Androidd出菜单阴影全部内容,希望文章能够帮你解决Androidd出菜单阴影所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1108263.html

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

发表评论

登录后才能评论

评论列表(0条)

保存