我们在绘制UI的时候经常会需要自定义一些View,在初次使用或者因长期不使用时都会容易犯一些迷糊,本文在此记录一些零碎的小细节备忘。
一:PopupWindow
如果要使点击区域外使对话框消失,必须调用以下方法:
popupWindow.setOutsideTouchable(true); popupWindow.setFocusable(true);//这里必须设置为true才能点击区域外或者消失 popupWindow.setTouchable(true);//这个控制PopupWindow内部控件的点击事件 popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//这个很重要,必须要设置 popupWindow.update();上述代码就可以达到点击PopupWindow区域外部使其消失的效果,额外着重要说明的一点:
popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
这个方法很关键,因为即使在XML里设置了background也认为是没有背景,必须在这里指定背景,如果不指定将无法触发下面的Touch监听事件。
popupWindow.setTouchInterceptor(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_OUTSIDE) popupWindow.dismiss(); return false; } });那么相反,如何让点击区域外不消失呢?这里要注意:
单单设置下面这一行是没有效果的
popupWindow.setOutsideTouchable(false);还需要同时设置
popupWindow.setFocusable(false);//点击区域外不会消失,点击返回会执行back事件必须添加这一行将其设置为false才能实现点击区域外不消失。
二:TextView中字体加粗
英文字体加粗 布局文件中这样设置即可: XML/HTML代码 android:textStyle="bold" 中文字体加粗: TextView textView= new TextView(context);//或通过findViewById从xml导入 TextPaint paint = textView.getPaint(); paint.setFakeBoldText(true);
PS:未完待续...