我们在绘制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:未完待续...