@Override
public
void
onClick(View v) {
switch
(v.getId()) {
case
R.id.about_me:
View targetView = mActivity.getWindow().getDecorView();
targetView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
targetView.setDrawingCacheEnabled(
true
);
Bitmap fullBitmap = Bitmap.createBitmap(targetView.getDrawingCache());
/**获取状态栏高度
Rect frame = new Rect();
mActivity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;*/
DisplayMetrics dm = mActivity.getResources().getDisplayMetrics();
/** 去掉标题栏
Bitmap bitmap = Bitmap.createBitmap(fullBitmap, 0, statusBarHeight, dm.widthPixels, dm.heightPixels - statusBarHeight);
targetView.destroyDrawingCache();*/
OutputStream output =
null
;
try
{
if
(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
String sdPath = Environment.getExternalStorageDirectory().getPath();
String pngPath = sdPath +
"/Remind/"
;
File pngDir =
new
File(pngPath);
if
(!pngDir.exists()) {
pngDir.mkdir();
}
String pngName = pngPath + System.currentTimeMillis() +
".png"
;
output =
new
FileOutputStream(pngName);
if
(output !=
null
) {
fullBitmap.compress(Bitmap.CompressFormat.PNG,
100
, output);
output.flush();
output.close();
}
/** WindowManager */
LayoutInflater inflater = LayoutInflater.from(mActivity);
screenShot = inflater.inflate(R.layout.screen_shot,
null
);
wmManager =(WindowManager) mActivity.getSystemService(mActivity.WINDOW_SERVICE);
WindowManager.LayoutParams wmParams =
new
WindowManager.LayoutParams();
ImageView shotImg = (ImageView) screenShot.findViewById(R.id.screen_shot_img);
shotImg.setImageBitmap(targetView.getDrawingCache());
/**
*以下都是WindowManager.LayoutParams的相关属性
*/
wmParams.type=WindowManager.LayoutParams.TYPE_PRIORITY_PHONE;
wmParams.format=PixelFormat.RGBA_8888;
wmParams.flags=WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
wmParams.alpha =
0
.8f;
wmParams.width = dm.widthPixels *
1
/
2
;
wmParams.height = dm.heightPixels *
1
/
2
;
wmParams.x = dm.widthPixels *
1
/
2
;
wmParams.y = - (dm.heightPixels *
1
/
5
);
wmManager.addView(screenShot, wmParams);
isRemoved =
false
;
timer =
new
Timer();
shotImg.setOnClickListener(
new
OnClickListener() {
@Override
public
void
onClick(View arg0) {
if
(wmManager !=
null
&& !isRemoved) {
wmManager.removeView(screenShot);
isRemoved =
true
;
if
(timer !=
null
) {
timer.cancel();
}
}
}
});
timer.schedule(
new
TimerTask() {
@Override
public
void
run() {
if
(wmManager !=
null
&& !isRemoved) {
wmManager.removeView(screenShot);
isRemoved =
true
;
}
}
},
3000
);
}
}
catch
(Exception e) {
e.printStackTrace();
}
break
;
default
:
break
;
}
}