http://www.tomgibara.com/android/camera-source
Popupwindow的使用方法概要如下:
PopupWindow window;
View v = this.getLayoutInflater().inflate(R.layout.popupwindow, null);
window = new PopupWindow(v, 200, 300);
window.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
window.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
设置长宽并非必须,但是不设置可能会导致图片显示尺寸不合适。
window.setOutsideTouchable(true);
不设置此项则下面的捕获window外touch事件就无法触发。
Drawable win_bg = this.getResources().getDrawable(R.drawable.bg);
window.setBackgroundDrawable(win_bg);
这个很WS,即使在XML里设置了background也认为是没有背景,必须在这里指定背景,如果不指定同样无法触发下面的Touch监听事件。
window.setTouchInterceptor(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_OUTSIDE)
window.dismiss();
return false;
}
});
在onCreate里设置好这些后,在某个button的onClick里调用window.showAsDropDown(v);即可(v是onClick函数的参数)
如果CustomPopupWindow继承了PopupWindow,而QuickAction继承了CustomPopupWindow的话,在QuickAction里不要用setContentView,不然可能图片会变得很大,比实际尺寸还大,目前原因未明。
QuickAction的XML文件,最外层的要用LinearLayout,不能用RelativeLayout,不然图片会很大,原因未明。
用LinearLayout时会出现上面的元素覆盖下面的,比如上面一个listview下面一个button,listview的元素多到覆盖屏幕时就会覆盖掉button,可以把LinearLayout改成RealtiveLayout即可。
转自:http://hi.baidu.com/jacky_java/blog/item/37f5915453ff479f8c543023.html
1、在Manifest.xml文件里面用user-permission声明。代码如下:
<uses-permission android:name="android.permission.WAKE_LOCK">
</uses-permission>
这种方法,在安装apk时,系统会提示安装人是否允许使用禁止休眠功能。
2、在程序中用代码实现。代码如下:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
复制代码
把这段代码加在setContentView(R.layout.main)之前即可
这种方法,安装时,不会提示安装人是否允许使用禁止休眠功能